
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: Output_segment * create_segments(Script_sections * this, Layout *
   layout, uint64_t dot_alignment) */

Output_segment * __thiscall
gold::Script_sections::create_segments(Script_sections *this,Layout *layout,uint64_t dot_alignment)

{
  Elf_Xword *pEVar1;
  uint64_t *puVar2;
  byte bVar3;
  _Iter_comp_iter<gold::Sort_output_sections> __comp;
  General_options *pGVar4;
  uint uVar5;
  int iVar6;
  _func_int_varargs *p_Var7;
  uint uVar8;
  pointer __last;
  byte bVar9;
  bool bVar10;
  Output_segment *pOVar11;
  Output_section **__buffer;
  Output_section *pOVar12;
  uint uVar13;
  int iVar14;
  size_t sizeof_headers;
  pointer ppOVar15;
  char *format;
  uint uVar16;
  int iVar17;
  undefined4 extraout_EDX;
  uint uVar18;
  uint uVar19;
  uint64_t length;
  int local_9c;
  int local_98;
  Output_segment *local_94;
  Output_segment *local_90;
  byte local_7d;
  uint local_7c;
  int local_78;
  uint local_6c;
  uint local_68;
  Output_section *local_54;
  Output_segment *local_50;
  uint local_4c;
  uint local_48;
  undefined8 local_44;
  byte local_34;
  Section_list sections;
  
  if (this->saw_sections_clause_ == false) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/script-sections.cc",0xf83,"create_segments");
  }
  if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->relocatable_).value != false) {
    return (Output_segment *)0x0;
  }
  if (this->phdrs_elements_ != (Phdrs_elements *)0x0) {
    attach_sections_using_phdrs_clause(this,layout);
    pOVar11 = set_phdrs_clause_addresses(this,layout,dot_alignment);
    return pOVar11;
  }
  sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl
  ._M_start = (pointer)0x0;
  sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl
  ._M_finish = (pointer)0x0;
  sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl
  ._M_end_of_storage = (pointer)0x0;
                    /* try { // try from 0010cde5 to 0010cde9 has its CatchHandler @ 0010d648 */
  Layout::get_allocated_sections(layout,&sections);
  __last = sections.
           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl
           ._M_finish;
  ppOVar15 = sections.
             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
             _M_impl._M_start;
  __comp._M_comp.elements_ = (Sort_output_sections)this->sections_elements_;
  iVar17 = (int)sections.
                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
                _M_impl._M_finish -
           (int)sections.
                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
                _M_impl._M_start;
  if (iVar17 < 0x7ffffffd) {
    if (iVar17 < 1) goto LAB_0010d4d8;
    iVar17 = iVar17 >> 2;
  }
  else {
    iVar17 = 0x1fffffff;
  }
  do {
    __buffer = (Output_section **)operator_new(iVar17 << 2,(nothrow_t *)&std::nothrow);
    if (__buffer != (Output_section **)0x0) {
                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */
      std::
      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>
                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
                  )ppOVar15,
                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
                  )__last,__buffer,iVar17,__comp);
      goto LAB_0010ce6f;
    }
    iVar17 = iVar17 >> 1;
  } while (iVar17 != 0);
LAB_0010d4d8:
                    /* try { // try from 0010d4e4 to 0010d4e8 has its CatchHandler @ 0010d638 */
  std::
  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>
            ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
              )ppOVar15,
             (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>
              )__last,__comp);
  __buffer = (Output_section **)0x0;
LAB_0010ce6f:
  operator_delete(__buffer,(nothrow_t *)&std::nothrow);
                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */
  create_note_and_tls_segments(this,layout,&sections);
  if (parameters->target_ == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x69,"target");
  }
  pGVar4 = parameters->options_;
  if (pGVar4 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  local_98 = *(int *)((int)&(pGVar4->max_page_size_).value + 4);
  local_9c = (int)(pGVar4->max_page_size_).value;
  if (local_98 == 0 && local_9c == 0) {
    iVar17 = *(int *)(parameters->target_ + 4);
    local_98 = *(int *)(iVar17 + 0x24);
    local_9c = *(int *)(iVar17 + 0x20);
  }
  local_94 = (Output_segment *)0x0;
  ppOVar15 = sections.
             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
             _M_impl._M_finish;
  if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
      _M_impl._M_start ==
      sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
      _M_impl._M_finish) {
LAB_0010d48b:
    if (ppOVar15 == (pointer)0x0) {
      return local_94;
    }
    operator_delete(ppOVar15);
    return local_94;
  }
  pOVar12 = *sections.
             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
             _M_impl._M_start;
  bVar3 = (pOVar12->super_Output_data).field_0x1c;
  if ((bVar3 & 1) != 0) {
    local_7d = 0;
    local_50 = (Output_segment *)0x0;
    local_34 = bVar3 & 1;
    local_4c = 0;
    uVar18 = local_9c - 1;
    local_48 = 0;
    iVar17 = local_98 + -1 + (uint)(local_9c != 0);
    local_90 = (Output_segment *)0x0;
    local_6c = 0;
    uVar16 = -(local_98 + (uint)(local_9c != 0));
    local_68 = 0;
    local_7c = 0;
    local_78 = 0;
    ppOVar15 = sections.
               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
               _M_impl._M_start;
    do {
      puVar2 = &(pOVar12->super_Output_data).address_;
      uVar5 = (uint)*puVar2;
      iVar6 = *(int *)((int)&(pOVar12->super_Output_data).address_ + 4);
      local_44 = *puVar2;
      p_Var7 = (pOVar12->super_Output_data)._vptr_Output_data[4];
      if (p_Var7 == Output_section::do_has_load_address) {
        bVar9 = (byte)pOVar12->field_0x90 >> 7;
      }
      else {
        iVar14 = (*p_Var7)(pOVar12);
        bVar9 = (byte)iVar14;
      }
      local_54 = *ppOVar15;
      if (bVar9 != 0) {
        p_Var7 = (local_54->super_Output_data)._vptr_Output_data[5];
        if (p_Var7 == Output_section::do_load_address) {
          if (-1 < (char)local_54->field_0x90) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");
          }
          local_44 = local_54->load_address_;
        }
        else {
          iVar14 = (*p_Var7)(local_54);
          local_54 = *ppOVar15;
          local_44 = CONCAT44(extraout_EDX,iVar14);
        }
      }
      uVar8 = (uint)(local_54->super_Output_data).data_size_;
      iVar14 = *(int *)((int)&(local_54->super_Output_data).data_size_ + 4);
      pEVar1 = &local_54->flags_;
      if ((local_50 == (Output_segment *)0x0) ||
         ((local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5) !=
          (local_68 - local_78) - (uint)(local_6c < local_7c) ||
          (uint)local_44 - uVar5 != local_6c - local_7c)) {
LAB_0010d018:
        local_4c = Layout::section_flags_to_segment(*pEVar1);
LAB_0010d029:
        local_50 = Layout::make_output_segment(layout,1,local_4c);
        *(uint *)&local_50->vaddr_ = uVar5;
        *(int *)((int)&local_50->vaddr_ + 4) = iVar6;
        *(uint *)&local_50->paddr_ = (uint)local_44;
        uVar13 = *(uint *)((int)&local_50->min_p_align_ + 4);
        *(uint *)((int)&local_50->paddr_ + 4) = local_44._4_4_;
        local_50->field_0x19c = local_50->field_0x19c | 2;
        if (uVar13 < dot_alignment._4_4_ ||
            uVar13 - dot_alignment._4_4_ <
            (uint)((uint)local_50->min_p_align_ < (uint)dot_alignment)) {
          local_50->min_p_align_ = dot_alignment;
        }
        local_7d = 0;
        local_34 = bVar3 & 1;
        if (local_90 == (Output_segment *)0x0) {
          local_90 = local_50;
        }
      }
      else {
        bVar10 = CARRY4(local_6c,local_4c);
        local_4c = local_6c + local_4c;
        local_48 = local_68 + local_48 + (uint)bVar10;
        uVar13 = local_44._4_4_;
        uVar19 = (uint)local_44;
        if (local_98 != 0 || local_9c != 0) {
          local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16;
          local_4c = -local_9c & local_4c + uVar18;
          uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16;
          uVar19 = -local_9c & (uint)local_44 + uVar18;
        }
        if (local_48 < uVar13 || local_48 - uVar13 < (uint)(local_4c < uVar19)) goto LAB_0010d018;
        if (local_7d != 0) {
          if (local_54->type_ != 8) goto LAB_0010d018;
          if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;
          local_4c = Layout::section_flags_to_segment(*pEVar1);
          goto LAB_0010d029;
        }
LAB_0010d2c0:
        if ((local_34 != 0) && ((*pEVar1 & 1) != 0)) {
          if (parameters->options_ == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
          local_34 = (parameters->options_->omagic_).value;
          if ((bool)local_34 == false) goto LAB_0010d018;
        }
        local_4c = Layout::section_flags_to_segment(*pEVar1);
      }
      Output_segment::add_output_section_to_load(local_50,layout,*ppOVar15,local_4c);
      uVar13 = (uint)(*ppOVar15)->flags_;
      if ((uVar13 & 1) != 0) {
        local_34 = 0;
      }
      if (((*ppOVar15)->type_ == 8) &&
         (bVar9 = ((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0), bVar9 != 0)) {
        local_7d = bVar9;
      }
      ppOVar15 = ppOVar15 + 1;
      if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
          ._M_impl._M_finish == ppOVar15) {
        ppOVar15 = sections.
                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                   ._M_impl._M_start;
        if (local_90 != (Output_segment *)0x0) {
          pGVar4 = parameters->options_;
          if (pGVar4 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
          }
          if (((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false)) {
            sizeof_headers = total_header_size(this,layout);
            uVar16 = (uint)local_90->vaddr_;
            uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);
            uVar5 = (uint)local_90->paddr_;
            uVar8 = *(uint *)((int)&local_90->paddr_ + 4);
            length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);
            local_44._0_4_ = (uint)length;
            local_44._4_4_ = (uint)(length >> 0x20);
            ppOVar15 = sections.
                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                       ._M_impl._M_start;
            if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <
                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {
              if ((local_44._4_4_ <= uVar8 &&
                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&
                 (local_44._4_4_ <= uVar18 &&
                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {
                if ((this->memory_regions_ != (Memory_regions *)0x0) &&
                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,
                                             CONCAT44((uVar8 - local_44._4_4_) -
                                                      (uint)(uVar5 < (uint)local_44),
                                                      uVar5 - (uint)local_44),length), !bVar10)) {
                  format = (char *)gettext(
                                          "creating a segment to contain the file and program headers outside of any MEMORY region"
                                          );
                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */
                  gold_warning(format);
                }
                local_94 = Layout::make_output_segment(layout,1,4);
                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;
                *(uint *)((int)&local_94->vaddr_ + 4) =
                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);
                local_94->field_0x19c = local_94->field_0x19c | 2;
                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;
                *(uint *)((int)&local_94->paddr_ + 4) =
                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);
                ppOVar15 = sections.
                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                           ._M_impl._M_start;
              }
            }
            else {
              local_94 = local_90;
              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;
              *(uint *)((int)&local_90->vaddr_ + 4) =
                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);
              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;
              local_90->field_0x19c = local_90->field_0x19c | 2;
              *(uint *)((int)&local_90->paddr_ + 4) =
                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);
            }
          }
        }
        goto LAB_0010d48b;
      }
      pOVar12 = *ppOVar15;
      local_6c = (uint)local_44;
      local_68 = local_44._4_4_;
      local_7c = uVar5;
      local_78 = iVar6;
      local_4c = uVar8;
      local_48 = iVar14;
    } while (((pOVar12->super_Output_data).field_0x1c & 1) != 0);
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/output.h",0xc5,"address");
}



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

int FUN_0010cd10(char *param_1,undefined4 param_2,uint param_3,uint param_4)

{
  byte bVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  bool bVar5;
  longlong lVar6;
  longlong lVar7;
  longlong lVar8;
  longlong lVar9;
  byte bVar10;
  char cVar11;
  int iVar12;
  int iVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  int *piVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  int *piVar21;
  longlong lVar22;
  undefined8 uVar23;
  int local_9c;
  int local_98;
  int local_94;
  int local_90;
  byte local_7d;
  int local_7c;
  int local_78;
  int *local_54;
  int local_50;
  uint local_4c;
  uint local_48;
  byte local_34;
  int *local_28;
  int *local_24;
  undefined4 local_20;
  
  if (*param_1 == '\0') {
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);
  }
  if (*(int *)(DAT_00302378 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);
  }
  if (*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {
    return 0;
  }
  if (*(int *)(param_1 + 0x10) != 0) {
    FUN_0010b6f0(param_1,param_2);
    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);
    return iVar12;
  }
  local_28 = (int *)0x0;
  local_24 = (int *)0x0;
  local_20 = 0;
                    /* try { // try from 0010cde5 to 0010cde9 has its CatchHandler @ 0010d648 */
  FUN_0007f630(param_2,&local_28);
  piVar21 = local_24;
  piVar17 = local_28;
  uVar18 = *(undefined4 *)(param_1 + 4);
  iVar12 = (int)local_24 - (int)local_28;
  if (iVar12 < 0x7ffffffd) {
    if (iVar12 < 1) goto LAB_0010d4d8;
    iVar12 = iVar12 >> 2;
  }
  else {
    iVar12 = 0x1fffffff;
  }
  do {
    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);
    if (iVar13 != 0) {
                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */
      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);
      goto LAB_0010ce6f;
    }
    iVar12 = iVar12 >> 1;
  } while (iVar12 != 0);
LAB_0010d4d8:
                    /* try { // try from 0010d4e4 to 0010d4e8 has its CatchHandler @ 0010d638 */
  FUN_001139b0(piVar17,piVar21,uVar18);
  iVar13 = 0;
LAB_0010ce6f:
  FUN_00180760(iVar13,&DAT_0023a423);
                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */
  FUN_00108730(param_1,param_2,&local_28);
  if (*(int *)(DAT_00302378 + 0xc) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);
  }
  iVar12 = *(int *)(DAT_00302378 + 8);
  if (iVar12 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */
    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);
  }
  local_98 = *(int *)(iVar12 + 0x521c);
  local_9c = *(int *)(iVar12 + 0x5218);
  if (local_98 == 0 && local_9c == 0) {
    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);
    local_98 = *(int *)(iVar12 + 0x24);
    local_9c = *(int *)(iVar12 + 0x20);
  }
  local_94 = 0;
  piVar17 = local_24;
  if (local_28 == local_24) {
LAB_0010d48b:
    if (piVar17 == (int *)0x0) {
      return local_94;
    }
    FUN_001807a0(piVar17);
    return local_94;
  }
  piVar17 = (int *)*local_28;
  bVar1 = *(byte *)(piVar17 + 7);
  if ((bVar1 & 1) != 0) {
    local_7d = 0;
    local_50 = 0;
    local_34 = bVar1 & 1;
    local_4c = 0;
    local_48 = 0;
    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);
    local_90 = 0;
    uVar19 = -(local_98 + (uint)(local_9c != 0));
    local_7c = 0;
    local_78 = 0;
    piVar21 = local_28;
    lVar8 = 0;
    do {
      lVar9 = CONCAT44(local_78,local_7c);
      local_7c = (int)*(longlong *)(piVar17 + 1);
      local_78 = piVar17[2];
      lVar6 = *(longlong *)(piVar17 + 1);
      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {
        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;
      }
      else {
        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);
      }
      local_54 = (int *)*piVar21;
      lVar22 = lVar6;
      if (bVar10 != 0) {
        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {
          if (-1 < (char)local_54[0x24]) {
                    /* WARNING: Subroutine does not return */
            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");
          }
          lVar22 = *(longlong *)(local_54 + 0xd);
        }
        else {
          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);
          local_54 = (int *)*piVar21;
        }
      }
      iVar12 = local_54[3];
      iVar13 = local_54[0x16];
      iVar2 = local_54[4];
      uVar3 = local_54[0x15];
      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {
LAB_0010d018:
        local_4c = FUN_0007b810(uVar3,iVar13);
LAB_0010d029:
        local_50 = FUN_0007f710(param_2,1,local_4c);
        *(int *)(local_50 + 0x15c) = local_7c;
        *(int *)(local_50 + 0x160) = local_78;
        *(longlong *)(local_50 + 0x164) = lVar22;
        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;
        if (*(uint *)(local_50 + 0x180) < param_4 ||
            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {
          *(uint *)(local_50 + 0x17c) = param_3;
          *(uint *)(local_50 + 0x180) = param_4;
        }
        local_7d = 0;
        local_34 = bVar1 & 1;
        if (local_90 == 0) {
          local_90 = local_50;
        }
      }
      else {
        lVar8 = lVar8 + CONCAT44(local_48,local_4c);
        lVar6 = lVar22;
        if (local_98 != 0 || local_9c != 0) {
          lVar8 = lVar8 + lVar7;
          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);
          lVar6 = lVar22 + lVar7;
          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);
        }
        local_48 = (uint)((ulonglong)lVar8 >> 0x20);
        local_4c = (uint)lVar8;
        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);
        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))
        goto LAB_0010d018;
        if (local_7d != 0) {
          if (local_54[0x14] != 8) goto LAB_0010d018;
          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;
          local_4c = FUN_0007b810(uVar3,iVar13);
          goto LAB_0010d029;
        }
LAB_0010d2c0:
        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {
          if (*(int *)(DAT_00302378 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);
          }
          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);
          if (local_34 == 0) goto LAB_0010d018;
        }
        local_4c = FUN_0007b810(uVar3,iVar13);
      }
      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);
      iVar13 = *piVar21;
      uVar18 = *(undefined4 *)(iVar13 + 0x58);
      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {
        local_34 = 0;
      }
      if (*(int *)(iVar13 + 0x50) == 8) {
        bVar5 = iVar12 != 0 || iVar2 != 0;
        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);
        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;
        if (bVar10 != 0) {
          local_7d = bVar10;
        }
      }
      piVar21 = piVar21 + 1;
      if (local_24 == piVar21) {
        piVar17 = local_28;
        if (local_90 != 0) {
          iVar12 = *(int *)(DAT_00302378 + 8);
          if (iVar12 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);
          }
          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {
            uVar15 = FUN_001085c0(param_1,param_2);
            uVar19 = *(uint *)(local_90 + 0x15c);
            uVar3 = *(uint *)(local_90 + 0x160);
            uVar14 = *(uint *)(local_90 + 0x164);
            uVar4 = *(uint *)(local_90 + 0x168);
            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);
            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);
            uVar16 = (uint)uVar23;
            piVar17 = local_28;
            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <
                (uint)((uVar14 & local_9c - 1U) < uVar15)) {
              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&
                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {
                if ((*(int *)(param_1 + 0xc) != 0) &&
                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,
                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),
                   cVar11 == '\0')) {
                  uVar18 = gettext(
                                  "creating a segment to contain the file and program headers outside of any MEMORY region"
                                  );
                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */
                  FUN_0005ad30(uVar18);
                }
                local_94 = FUN_0007f710(param_2,1,4);
                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;
                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);
                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;
                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;
                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);
                piVar17 = local_28;
              }
            }
            else {
              local_94 = local_90;
              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;
              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);
              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;
              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;
              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);
            }
          }
        }
        goto LAB_0010d48b;
      }
      piVar17 = (int *)*piVar21;
      local_4c = iVar12;
      local_48 = iVar2;
      lVar8 = lVar22;
    } while ((*(byte *)(piVar17 + 7) & 1) != 0);
  }
                    /* WARNING: Subroutine does not return */
  FUN_0005f0b0("../../gold/output.h",0xc5,"address");
}


CALL 0x0004fb76
ADD EAX,0x1f52eb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xac
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EBP + 0x10]
MOV EDX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + 0xffffff78],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + 0xffffff7c],EDX
CMP byte ptr [EAX],0x0
JZ 0x0010d59f
MOV EAX,dword ptr [EBP + -0x2c]
LEA EAX,[EAX + 0x378]
MOV dword ptr [EBP + 0xffffff54],EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0010d5bb
CMP byte ptr [EAX + 0x318d],0x0
JNZ 0x0010d4b0
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + 0xffffff70],EAX
TEST EAX,EAX
JZ 0x0010cdc0
SUB ESP,0x8
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0x8]
CALL 0x0010b6f0
ADD ESP,0x10
PUSH dword ptr [EBP + 0xffffff7c]
PUSH dword ptr [EBP + 0xffffff78]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0x8]
CALL 0x00108c00
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff70],EAX
MOV EAX,dword ptr [EBP + 0xffffff70]
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
LEA EAX,[EBP + -0x24]
MOV EBX,dword ptr [EBP + -0x2c]
MOV dword ptr [EBP + -0x24],0x0
PUSH EAX
PUSH dword ptr [EBP + 0xc]
MOV dword ptr [EBP + -0x20],0x0
MOV dword ptr [EBP + -0x1c],0x0
MOV dword ptr [EBP + -0x30],EAX
CALL 0x0007f630
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + -0x20]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + -0x40],EDX
MOV dword ptr [EBP + -0x38],EAX
MOV EAX,dword ptr [EBP + -0x24]
SUB EDX,EAX
MOV dword ptr [EBP + -0x48],EAX
CMP EDX,0x7ffffffc
JG 0x0010d1a0
TEST EDX,EDX
JLE 0x0010d4c8
SAR EDX,0x2
MOV EAX,dword ptr [EBP + -0x2c]
MOV ESI,EDX
LEA EDI,[EAX + 0xfff38423]
JMP 0x0010ce3c
MOV EAX,ESI
SAR EAX,0x1
MOV ESI,EAX
JZ 0x0010d4d8
MOV EAX,ESI
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x2c]
SHL EAX,0x2
PUSH EDI
PUSH EAX
CALL 0x0017eb90
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0010ce30
SUB ESP,0xc
MOV ECX,ESI
PUSH dword ptr [EBP + -0x38]
MOV ESI,EAX
PUSH ECX
PUSH EAX
PUSH dword ptr [EBP + -0x40]
PUSH dword ptr [EBP + -0x48]
CALL 0x001142e0
ADD ESP,0x20
SUB ESP,0x8
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EDI
PUSH ESI
CALL 0x00180760
ADD ESP,0xc
PUSH dword ptr [EBP + -0x30]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0x8]
CALL 0x00108730
MOV EAX,dword ptr [EBP + 0xffffff54]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0xc]
TEST EDX,EDX
JZ 0x0010d5ed
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0010d5d4
MOV EDI,dword ptr [EAX + 0x521c]
MOV ESI,dword ptr [EAX + 0x5218]
MOV ECX,EDI
MOV dword ptr [EBP + 0xffffff68],ESI
OR ECX,ESI
MOV dword ptr [EBP + 0xffffff6c],EDI
JNZ 0x0010cee1
MOV EAX,dword ptr [EDX + 0x4]
MOV EDX,dword ptr [EAX + 0x24]
MOV EAX,dword ptr [EAX + 0x20]
MOV dword ptr [EBP + 0xffffff6c],EDX
MOV dword ptr [EBP + 0xffffff68],EAX
MOV EDI,dword ptr [EBP + -0x24]
MOV EAX,dword ptr [EBP + -0x20]
CMP EDI,EAX
JZ 0x0010d48b
MOV EAX,dword ptr [EDI]
MOVZX EDX,byte ptr [EAX + 0x1c]
AND EDX,0x1
MOV byte ptr [EBP + -0x7a],DL
JZ 0x0010d564
MOVZX EDX,byte ptr [EBP + -0x7a]
MOV EBX,dword ptr [EBP + -0x2c]
MOV byte ptr [EBP + -0x79],0x0
MOV ECX,dword ptr [EBP + 0xffffff6c]
MOV dword ptr [EBP + -0x4c],0x0
MOV byte ptr [EBP + -0x30],DL
MOV EDX,dword ptr [EBP + 0xffffff68]
LEA EBX,[EBX + 0xffd86ef0]
MOV dword ptr [EBP + -0x80],EBX
MOV ESI,ECX
MOV EBX,EDX
MOV dword ptr [EBP + -0x48],0x0
ADD EBX,-0x1
MOV dword ptr [EBP + -0x44],0x0
ADC ESI,-0x1
NEG EDX
MOV dword ptr [EBP + 0xffffff74],0x0
ADC ECX,0x0
MOV dword ptr [EBP + -0x68],0x0
NEG ECX
MOV dword ptr [EBP + -0x64],0x0
MOV dword ptr [EBP + -0x78],0x0
MOV dword ptr [EBP + -0x74],0x0
MOV dword ptr [EBP + 0xffffff58],EBX
MOV dword ptr [EBP + 0xffffff5c],ESI
MOV dword ptr [EBP + 0xffffff60],EDX
MOV dword ptr [EBP + 0xffffff64],ECX
JMP 0x0010d154
MOV EAX,dword ptr [ESI]
MOV ECX,dword ptr [EBP + -0x2c]
MOV EAX,dword ptr [EAX + 0x14]
LEA EDX,[ECX + 0xffd87130]
CMP EAX,EDX
JNZ 0x0010d2a0
CMP byte ptr [ESI + 0x90],0x0
JNS 0x0010d582
MOV EAX,dword ptr [EBP + -0x50]
MOV EDX,dword ptr [EAX + 0x38]
MOV EAX,dword ptr [EAX + 0x34]
MOV dword ptr [EBP + -0x3c],EDX
MOV dword ptr [EBP + -0x40],EAX
MOV EAX,dword ptr [EBP + -0x50]
MOV ESI,dword ptr [EAX + 0xc]
MOV EDX,dword ptr [EAX + 0x58]
MOV dword ptr [EBP + -0x5c],ESI
MOV ESI,dword ptr [EAX + 0x10]
MOV EAX,dword ptr [EAX + 0x54]
MOV dword ptr [EBP + -0x6c],EDX
MOV dword ptr [EBP + -0x60],ESI
MOV dword ptr [EBP + -0x70],EAX
MOV EAX,dword ptr [EBP + -0x4c]
TEST EAX,EAX
JZ 0x0010d018
MOV EAX,dword ptr [EBP + -0x40]
MOV EDX,dword ptr [EBP + -0x3c]
SUB EAX,dword ptr [EBP + -0x38]
SBB EDX,dword ptr [EBP + -0x34]
MOV dword ptr [EBP + -0x58],EAX
MOV EAX,dword ptr [EBP + -0x68]
MOV dword ptr [EBP + -0x54],EDX
SUB EAX,dword ptr [EBP + -0x78]
MOV EDX,dword ptr [EBP + -0x64]
SBB EDX,dword ptr [EBP + -0x74]
MOV ECX,EAX
MOV EBX,EDX
MOV EAX,dword ptr [EBP + -0x58]
MOV EDX,dword ptr [EBP + -0x54]
XOR EAX,ECX
XOR EDX,EBX
OR EDX,EAX
JZ 0x0010d1b0
SUB ESP,0x8
PUSH dword ptr [EBP + -0x6c]
MOV EBX,dword ptr [EBP + -0x2c]
PUSH dword ptr [EBP + -0x70]
CALL 0x0007b810
ADD ESP,0x10
MOV dword ptr [EBP + -0x48],EAX
MOV EBX,dword ptr [EBP + -0x2c]
SUB ESP,0x4
PUSH dword ptr [EBP + -0x48]
PUSH 0x1
PUSH dword ptr [EBP + 0xc]
CALL 0x0007f710
MOV EBX,EAX
MOV dword ptr [EBP + -0x4c],EAX
MOV EAX,dword ptr [EBP + -0x38]
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x34]
MOV ECX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EBX + 0x15c],EAX
MOV EAX,dword ptr [EBP + -0x40]
MOV dword ptr [EBX + 0x160],EDX
MOV EDX,dword ptr [EBP + -0x3c]
MOV dword ptr [EBX + 0x164],EAX
MOV EAX,dword ptr [EBX + 0x180]
MOV dword ptr [EBX + 0x168],EDX
MOV EDX,dword ptr [EBP + 0xffffff78]
OR byte ptr [EBX + 0x19c],0x2
CMP dword ptr [EBX + 0x17c],EDX
SBB EAX,ECX
JNC 0x0010d09d
MOV dword ptr [EBX + 0x17c],EDX
MOV dword ptr [EBX + 0x180],ECX
MOVZX EAX,byte ptr [EBP + -0x7a]
MOV ESI,dword ptr [EBP + 0xffffff74]
MOV byte ptr [EBP + -0x79],0x0
MOV byte ptr [EBP + -0x30],AL
TEST ESI,ESI
JZ 0x0010d280
PUSH dword ptr [EBP + -0x48]
MOV EBX,dword ptr [EBP + -0x2c]
PUSH dword ptr [EDI]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + -0x4c]
CALL 0x000bfab0
MOV ECX,dword ptr [EDI]
ADD ESP,0x10
MOV EAX,dword ptr [ECX + 0x54]
MOV EDX,dword ptr [ECX + 0x58]
MOV EBX,EAX
MOV dword ptr [EBP + -0x48],EAX
MOVZX EAX,byte ptr [EBP + -0x30]
AND EBX,0x1
MOV EBX,0x0
MOV dword ptr [EBP + -0x44],EDX
CMOVNZ EAX,EBX
CMP dword ptr [ECX + 0x50],0x8
MOV byte ptr [EBP + -0x30],AL
JNZ 0x0010d118
MOV EDX,dword ptr [EBP + -0x44]
MOV EAX,dword ptr [EBP + -0x48]
MOV ESI,dword ptr [EBP + -0x5c]
SHRD EAX,EDX,0xa
XOR EAX,0x1
OR ESI,dword ptr [EBP + -0x60]
MOVZX ESI,byte ptr [EBP + -0x79]
SETNZ DL
AND AL,DL
CMOVNZ ESI,EAX
MOV EAX,ESI
MOV byte ptr [EBP + -0x79],AL
ADD EDI,0x4
CMP dword ptr [EBP + -0x20],EDI
JZ 0x0010d318
MOV ECX,dword ptr [EBP + -0x38]
MOV EBX,dword ptr [EBP + -0x34]
MOV ESI,dword ptr [EBP + -0x5c]
MOV EAX,dword ptr [EDI]
MOV dword ptr [EBP + -0x78],ECX
MOV ECX,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + -0x74],EBX
MOV EBX,dword ptr [EBP + -0x3c]
MOV dword ptr [EBP + -0x48],ESI
MOV ESI,dword ptr [EBP + -0x60]
MOV dword ptr [EBP + -0x68],ECX
MOV dword ptr [EBP + -0x64],EBX
MOV dword ptr [EBP + -0x44],ESI
TEST byte ptr [EAX + 0x1c],0x1
JZ 0x0010d564
MOV ECX,dword ptr [EAX + 0x4]
MOV EBX,dword ptr [EAX + 0x8]
MOV EDX,dword ptr [EAX]
MOV dword ptr [EBP + -0x38],ECX
MOV dword ptr [EBP + -0x34],EBX
MOV EDX,dword ptr [EDX + 0x10]
CMP EDX,dword ptr [EBP + -0x80]
JNZ 0x0010d270
MOVZX EAX,byte ptr [EAX + 0x90]
SHR AL,0x7
MOV ESI,dword ptr [EDI]
MOV dword ptr [EBP + -0x50],ESI
TEST AL,AL
JNZ 0x0010cf90
MOV EAX,dword ptr [EBP + -0x38]
MOV EDX,dword ptr [EBP + -0x34]
MOV dword ptr [EBP + -0x40],EAX
MOV dword ptr [EBP + -0x3c],EDX
JMP 0x0010cfc2
MOV EDX,0x1fffffff
JMP 0x0010ce1b
MOV EAX,dword ptr [EBP + 0xffffff68]
MOV EDX,dword ptr [EBP + 0xffffff6c]
MOV ECX,dword ptr [EBP + -0x68]
MOV EBX,dword ptr [EBP + -0x64]
ADD ECX,dword ptr [EBP + -0x48]
ADC EBX,dword ptr [EBP + -0x44]
OR EDX,EAX
MOV dword ptr [EBP + -0x48],ECX
MOV dword ptr [EBP + -0x44],EBX
JZ 0x0010d290
MOV EAX,ECX
MOV ECX,dword ptr [EBP + 0xffffff60]
ADD EAX,dword ptr [EBP + 0xffffff58]
MOV EDX,EBX
ADC EDX,dword ptr [EBP + 0xffffff5c]
AND EDX,dword ptr [EBP + 0xffffff64]
MOV ESI,ECX
MOV ECX,dword ptr [EBP + -0x40]
MOV EBX,dword ptr [EBP + -0x3c]
MOV dword ptr [EBP + -0x44],EDX
AND ESI,EAX
ADD ECX,dword ptr [EBP + 0xffffff58]
ADC EBX,dword ptr [EBP + 0xffffff5c]
MOV EAX,ECX
MOV ECX,dword ptr [EBP + 0xffffff60]
MOV EDX,EBX
MOV dword ptr [EBP + -0x48],ESI
MOV EBX,dword ptr [EBP + 0xffffff64]
MOV ESI,ECX
AND ESI,EAX
MOV EAX,EDX
AND EAX,EBX
MOV EDX,dword ptr [EBP + -0x48]
MOV ECX,dword ptr [EBP + -0x44]
CMP EDX,ESI
SBB ECX,EAX
JC 0x0010d018
CMP byte ptr [EBP + -0x79],0x0
JZ 0x0010d2c0
MOV EAX,dword ptr [EBP + -0x50]
CMP dword ptr [EAX + 0x50],0x8
JNZ 0x0010d018
MOV EBX,dword ptr [EBP + -0x70]
MOV ESI,dword ptr [EBP + -0x6c]
MOV EAX,EBX
AND EAX,0x400
JZ 0x0010d2c0
SUB ESP,0x8
PUSH ESI
PUSH EBX
MOV EBX,dword ptr [EBP + -0x2c]
CALL 0x0007b810
JMP 0x0010d029
SUB ESP,0xc
PUSH EAX
CALL EDX
ADD ESP,0x10
JMP 0x0010d178
MOV EAX,dword ptr [EBP + -0x4c]
MOV dword ptr [EBP + 0xffffff74],EAX
JMP 0x0010d0b6
MOV EAX,dword ptr [EBP + -0x40]
MOV EDX,dword ptr [EBP + -0x3c]
MOV ESI,EAX
MOV EAX,EDX
JMP 0x0010d226
SUB ESP,0xc
PUSH dword ptr [EBP + -0x50]
CALL EAX
MOV dword ptr [EBP + -0x40],EAX
MOV EAX,dword ptr [EDI]
ADD ESP,0x10
MOV dword ptr [EBP + -0x3c],EDX
MOV dword ptr [EBP + -0x50],EAX
JMP 0x0010cfc2
CMP byte ptr [EBP + -0x30],0x0
JZ 0x0010d2f8
MOV EAX,dword ptr [EBP + -0x70]
AND EAX,0x1
JZ 0x0010d2f8
MOV EAX,dword ptr [EBP + 0xffffff54]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0010d61f
MOVZX EAX,byte ptr [EAX + 0x253d]
MOV byte ptr [EBP + -0x30],AL
TEST AL,AL
JZ 0x0010d018
LEA ESI,[ESI]
NOP
SUB ESP,0x8
PUSH dword ptr [EBP + -0x6c]
MOV EBX,dword ptr [EBP + -0x2c]
PUSH dword ptr [EBP + -0x70]
CALL 0x0007b810
MOV dword ptr [EBP + -0x48],EAX
ADD ESP,0x10
JMP 0x0010d0b6
MOV ECX,dword ptr [EBP + 0xffffff74]
TEST ECX,ECX
JZ 0x0010d488
MOV EAX,dword ptr [EBP + 0xffffff54]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0010d606
CMP byte ptr [EAX + 0x24c1],0x0
JNZ 0x0010d488
CMP byte ptr [EAX + 0x253d],0x0
JNZ 0x0010d488
SUB ESP,0x8
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + 0x8]
CALL 0x001085c0
MOV EDI,dword ptr [EBP + 0xffffff74]
MOV ESI,EAX
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x15c]
MOV EDX,dword ptr [EDI + 0x160]
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,dword ptr [EDI + 0x164]
MOV dword ptr [EBP + -0x44],EDX
MOV EDX,dword ptr [EDI + 0x168]
PUSH ESI
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x38],EAX
MOV dword ptr [EBP + -0x34],EDX
CALL 0x00108650
MOV ECX,dword ptr [EBP + 0xffffff6c]
ADD ESP,0x10
MOV EBX,dword ptr [EBP + -0x38]
MOV dword ptr [EBP + -0x3c],EDX
MOV EDX,dword ptr [EBP + 0xffffff68]
MOV dword ptr [EBP + -0x40],EAX
ADD EDX,-0x1
ADC ECX,-0x1
MOV EAX,EDX
MOV EDX,ECX
MOV ECX,dword ptr [EBP + -0x34]
AND EBX,EAX
AND ECX,EDX
XOR EDX,EDX
CMP EBX,ESI
SBB ECX,EDX
JNC 0x0010d4f3
MOV EAX,dword ptr [EBP + -0x40]
MOV ESI,dword ptr [EBP + -0x38]
MOV EDX,dword ptr [EBP + -0x3c]
MOV EDI,dword ptr [EBP + -0x34]
CMP ESI,EAX
SBB EDI,EDX
JC 0x0010d488
MOV ESI,dword ptr [EBP + -0x48]
MOV EDI,dword ptr [EBP + -0x44]
CMP ESI,EAX
SBB EDI,EDX
JC 0x0010d488
MOV EAX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0010d42f
MOV ESI,dword ptr [EBP + -0x40]
MOV EAX,dword ptr [EBP + -0x38]
SUB ESP,0x4
MOV EDI,dword ptr [EBP + -0x3c]
MOV EDX,dword ptr [EBP + -0x34]
SUB EAX,ESI
SBB EDX,EDI
PUSH EDI
PUSH ESI
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xc]
PUSH 0x0
PUSH dword ptr [EBP + 0x8]
CALL 0x00107300
ADD ESP,0x20
TEST AL,AL
JZ 0x0010d540
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x2c]
PUSH 0x4
PUSH 0x1
PUSH dword ptr [EBP + 0xc]
CALL 0x0007f710
MOV EBX,EAX
MOV ESI,dword ptr [EBP + -0x40]
MOV dword ptr [EBP + 0xffffff70],EAX
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x48]
MOV EDI,dword ptr [EBP + -0x3c]
MOV EDX,dword ptr [EBP + -0x44]
SUB EAX,ESI
SBB EDX,EDI
MOV dword ptr [EBX + 0x15c],EAX
MOV EAX,dword ptr [EBP + -0x38]
MOV dword ptr [EBX + 0x160],EDX
MOV EDX,dword ptr [EBP + -0x34]
SUB EAX,ESI
SBB EDX,EDI
OR byte ptr [EBX + 0x19c],0x2
MOV dword ptr [EBX + 0x164],EAX
MOV dword ptr [EBX + 0x168],EDX
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + -0x24]
TEST EAX,EAX
JZ 0x0010cdb1
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
CALL 0x001807a0
MOV EAX,dword ptr [EBP + 0xffffff70]
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [EBP + 0xffffff70],0x0
MOV EAX,dword ptr [EBP + 0xffffff70]
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + -0x2c]
LEA EDI,[EAX + 0xfff38423]
LEA ESI,[ESI]
SUB ESP,0x4
PUSH dword ptr [EBP + -0x38]
PUSH dword ptr [EBP + -0x40]
PUSH dword ptr [EBP + -0x48]
CALL 0x001139b0
ADD ESP,0x10
XOR ESI,ESI
JMP 0x0010ce6f
MOV ESI,dword ptr [EBP + -0x40]
MOV EAX,dword ptr [EBP + -0x48]
MOV EBX,dword ptr [EBP + 0xffffff74]
MOV EDI,dword ptr [EBP + -0x3c]
MOV EDX,dword ptr [EBP + -0x44]
SUB EAX,ESI
MOV dword ptr [EBX + 0x15c],EAX
MOV EAX,dword ptr [EBP + -0x38]
SBB EDX,EDI
MOV dword ptr [EBP + 0xffffff70],EBX
MOV dword ptr [EBX + 0x160],EDX
MOV EDX,dword ptr [EBP + -0x34]
SUB EAX,ESI
MOV dword ptr [EBX + 0x164],EAX
MOV EAX,dword ptr [EBP + -0x24]
SBB EDX,EDI
OR byte ptr [EBX + 0x19c],0x2
MOV dword ptr [EBX + 0x168],EDX
JMP 0x0010d48b
MOV EDI,dword ptr [EBP + -0x2c]
SUB ESP,0xc
LEA EAX,[EDI + 0xfff2c6e0]
MOV EBX,EDI
PUSH EAX
CALL 0x000263b0
MOV dword ptr [ESP],EAX
CALL 0x0005ad30
ADD ESP,0x10
JMP 0x0010d42f
MOV EBX,dword ptr [EBP + -0x2c]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff2c9c0]
PUSH EAX
LEA EAX,[EBX + 0xfff1f60c]
PUSH 0xc5
PUSH EAX
CALL 0x0005f0b0
SUB ESP,0x4
LEA EAX,[ECX + 0xfff2c984]
MOV EBX,ECX
PUSH EAX
LEA EAX,[ECX + 0xfff1f60c]
PUSH 0x107b
PUSH EAX
CALL 0x0005f0b0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
LEA EAX,[EBX + 0xfff2c814]
PUSH EAX
LEA EAX,[EBX + 0xfff2c01b]
PUSH 0xf83
PUSH EAX
CALL 0x0005f0b0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
LEA EAX,[EBX + 0xfff2c9a0]
PUSH EAX
LEA EAX,[EBX + 0xfff1e970]
PUSH 0x5c
PUSH EAX
CALL 0x0005f0b0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
LEA EAX,[EBX + 0xfff2c9a0]
PUSH EAX
LEA EAX,[EBX + 0xfff1e970]
PUSH 0x5c
PUSH EAX
CALL 0x0005f0b0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
LEA EAX,[EBX + 0xfff2ca5c]
PUSH EAX
LEA EAX,[EBX + 0xfff1e970]
PUSH 0x69
PUSH EAX
CALL 0x0005f0b0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EDX
LEA EAX,[EBX + 0xfff2c9a0]
PUSH EAX
LEA EAX,[EBX + 0xfff1e970]
PUSH 0x5c
PUSH EAX
CALL 0x0005f0b0
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EDI
LEA EAX,[EBX + 0xfff2c9a0]
PUSH EAX
LEA EAX,[EBX + 0xfff1e970]
PUSH 0x5c
PUSH EAX
CALL 0x0005f0b0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nint FUN_0010cd10(char *param_1,undefined4 param_2,uint param_3,uint param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  bool bVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  longlong lVar9;\n  byte bVar10;\n  char cVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int *piVar17;\n  undefined4 uVar18;\n  uint uVar19;\n  uint uVar20;\n  int *piVar21;\n  longlong lVar22;\n  undefined8 uVar23;\n  int local_9c;\n  int local_98;\n  int local_94;\n  int local_90;\n  byte local_7d;\n  int local_7c;\n  int local_78;\n  int *local_54;\n  int local_50;\n  uint local_4c;\n  uint local_48;\n  byte local_34;\n  int *local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  if (*param_1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }\n  if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  if (*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {\n    return 0;\n  }\n  if (*(int *)(param_1 + 0x10) != 0) {\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }\n  local_28 = (int *)0x0;\n  local_24 = (int *)0x0;\n  local_20 = 0;\n                    /* try { // try from 0010cde5 to 0010cde9 has its CatchHandler @ 0010d648 */\n  FUN_0007f630(param_2,&local_28);\n  piVar21 = local_24;\n  piVar17 = local_28;\n  uVar18 = *(undefined4 *)(param_1 + 4);\n  iVar12 = (int)local_24 - (int)local_28;\n  if (iVar12 < 0x7ffffffd) {\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }\n  else {\n    iVar12 = 0x1fffffff;\n  }\n  do {\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  } while (iVar12 != 0);\nLAB_0010d4d8:\n                    /* try { // try from 0010d4e4 to 0010d4e8 has its CatchHandler @ 0010d638 */\n  FUN_001139b0(piVar17,piVar21,uVar18);\n  iVar13 = 0;\nLAB_0010ce6f:\n  FUN_00180760(iVar13,&DAT_0023a423);\n                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */\n  FUN_00108730(param_1,param_2,&local_28);\n  if (*(int *)(DAT_00302378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }\n  iVar12 = *(int *)(DAT_00302378 + 8);\n  if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  local_98 = *(int *)(iVar12 + 0x521c);\n  local_9c = *(int *)(iVar12 + 0x5218);\n  if (local_98 == 0 && local_9c == 0) {\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }\n  local_94 = 0;\n  piVar17 = local_24;\n  if (local_28 == local_24) {\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }\n  piVar17 = (int *)*local_28;\n  bVar1 = *(byte *)(piVar17 + 7);\n  if ((bVar1 & 1) != 0) {\n    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0005f0b0("../../gold/output.h",0xc5,"address");\n}\n\n" comment (function_definition "int FUN_0010cd10(char *param_1,undefined4 param_2,uint param_3,uint param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  bool bVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  longlong lVar9;\n  byte bVar10;\n  char cVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int *piVar17;\n  undefined4 uVar18;\n  uint uVar19;\n  uint uVar20;\n  int *piVar21;\n  longlong lVar22;\n  undefined8 uVar23;\n  int local_9c;\n  int local_98;\n  int local_94;\n  int local_90;\n  byte local_7d;\n  int local_7c;\n  int local_78;\n  int *local_54;\n  int local_50;\n  uint local_4c;\n  uint local_48;\n  byte local_34;\n  int *local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  if (*param_1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }\n  if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  if (*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {\n    return 0;\n  }\n  if (*(int *)(param_1 + 0x10) != 0) {\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }\n  local_28 = (int *)0x0;\n  local_24 = (int *)0x0;\n  local_20 = 0;\n                    /* try { // try from 0010cde5 to 0010cde9 has its CatchHandler @ 0010d648 */\n  FUN_0007f630(param_2,&local_28);\n  piVar21 = local_24;\n  piVar17 = local_28;\n  uVar18 = *(undefined4 *)(param_1 + 4);\n  iVar12 = (int)local_24 - (int)local_28;\n  if (iVar12 < 0x7ffffffd) {\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }\n  else {\n    iVar12 = 0x1fffffff;\n  }\n  do {\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  } while (iVar12 != 0);\nLAB_0010d4d8:\n                    /* try { // try from 0010d4e4 to 0010d4e8 has its CatchHandler @ 0010d638 */\n  FUN_001139b0(piVar17,piVar21,uVar18);\n  iVar13 = 0;\nLAB_0010ce6f:\n  FUN_00180760(iVar13,&DAT_0023a423);\n                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */\n  FUN_00108730(param_1,param_2,&local_28);\n  if (*(int *)(DAT_00302378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }\n  iVar12 = *(int *)(DAT_00302378 + 8);\n  if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  local_98 = *(int *)(iVar12 + 0x521c);\n  local_9c = *(int *)(iVar12 + 0x5218);\n  if (local_98 == 0 && local_9c == 0) {\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }\n  local_94 = 0;\n  piVar17 = local_24;\n  if (local_28 == local_24) {\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }\n  piVar17 = (int *)*local_28;\n  bVar1 = *(byte *)(piVar17 + 7);\n  if ((bVar1 & 1) != 0) {\n    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0005f0b0("../../gold/output.h",0xc5,"address");\n}" primitive_type (function_declarator "FUN_0010cd10(char *param_1,undefined4 param_2,uint param_3,uint param_4)" identifier (parameter_list "(char *param_1,undefined4 param_2,uint param_3,uint param_4)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  bool bVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  longlong lVar9;\n  byte bVar10;\n  char cVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int *piVar17;\n  undefined4 uVar18;\n  uint uVar19;\n  uint uVar20;\n  int *piVar21;\n  longlong lVar22;\n  undefined8 uVar23;\n  int local_9c;\n  int local_98;\n  int local_94;\n  int local_90;\n  byte local_7d;\n  int local_7c;\n  int local_78;\n  int *local_54;\n  int local_50;\n  uint local_4c;\n  uint local_48;\n  byte local_34;\n  int *local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  if (*param_1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }\n  if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  if (*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {\n    return 0;\n  }\n  if (*(int *)(param_1 + 0x10) != 0) {\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }\n  local_28 = (int *)0x0;\n  local_24 = (int *)0x0;\n  local_20 = 0;\n                    /* try { // try from 0010cde5 to 0010cde9 has its CatchHandler @ 0010d648 */\n  FUN_0007f630(param_2,&local_28);\n  piVar21 = local_24;\n  piVar17 = local_28;\n  uVar18 = *(undefined4 *)(param_1 + 4);\n  iVar12 = (int)local_24 - (int)local_28;\n  if (iVar12 < 0x7ffffffd) {\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }\n  else {\n    iVar12 = 0x1fffffff;\n  }\n  do {\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  } while (iVar12 != 0);\nLAB_0010d4d8:\n                    /* try { // try from 0010d4e4 to 0010d4e8 has its CatchHandler @ 0010d638 */\n  FUN_001139b0(piVar17,piVar21,uVar18);\n  iVar13 = 0;\nLAB_0010ce6f:\n  FUN_00180760(iVar13,&DAT_0023a423);\n                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */\n  FUN_00108730(param_1,param_2,&local_28);\n  if (*(int *)(DAT_00302378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }\n  iVar12 = *(int *)(DAT_00302378 + 8);\n  if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  local_98 = *(int *)(iVar12 + 0x521c);\n  local_9c = *(int *)(iVar12 + 0x5218);\n  if (local_98 == 0 && local_9c == 0) {\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }\n  local_94 = 0;\n  piVar17 = local_24;\n  if (local_28 == local_24) {\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }\n  piVar17 = (int *)*local_28;\n  bVar1 = *(byte *)(piVar17 + 7);\n  if ((bVar1 & 1) != 0) {\n    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0005f0b0("../../gold/output.h",0xc5,"address");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "longlong lVar6;" type_identifier identifier ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "longlong lVar22;" type_identifier identifier ;) (declaration "undefined8 uVar23;" type_identifier identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "byte local_7d;" type_identifier identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "int *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "byte local_34;" type_identifier identifier ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (if_statement "if (*param_1 == '\0') {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }" if (parenthesized_expression "(*param_1 == '\0')" ( (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }" { comment (expression_statement "FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);" (call_expression "FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1)" identifier (argument_list "("../../gold/script-sections.cc",0xf83,"create_segments",param_1)" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""create_segments"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }" if (parenthesized_expression "(*(int *)(DAT_00302378 + 8) == 0)" ( (binary_expression "*(int *)(DAT_00302378 + 8) == 0" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }" { comment (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);" (call_expression "FUN_0005f0b0("../../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 *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {\n    return 0;\n  }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(DAT_00302378 + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00302378 + 8) + 0x318d)" ( (binary_expression "*(int *)(DAT_00302378 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(param_1 + 0x10) != 0) {\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x10) != 0)" ( (binary_expression "*(int *)(param_1 + 0x10) != 0" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }" { (expression_statement "FUN_0010b6f0(param_1,param_2);" (call_expression "FUN_0010b6f0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (expression_statement "iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);" (assignment_expression "iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4)" identifier = (call_expression "FUN_00108c00(param_1,param_2,param_3,param_4)" identifier (argument_list "(param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return iVar12;" return identifier ;) })) (expression_statement "local_28 = (int *)0x0;" (assignment_expression "local_28 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) comment (expression_statement "FUN_0007f630(param_2,&local_28);" (call_expression "FUN_0007f630(param_2,&local_28)" identifier (argument_list "(param_2,&local_28)" ( identifier , (pointer_expression "&local_28" & identifier) ))) ;) (expression_statement "piVar21 = local_24;" (assignment_expression "piVar21 = local_24" identifier = identifier) ;) (expression_statement "piVar17 = local_28;" (assignment_expression "piVar17 = local_28" identifier = identifier) ;) (expression_statement "uVar18 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar18 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = (int)local_24 - (int)local_28;" (assignment_expression "iVar12 = (int)local_24 - (int)local_28" identifier = (binary_expression "(int)local_24 - (int)local_28" (cast_expression "(int)local_24" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar12 < 0x7ffffffd) {\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }\n  else {\n    iVar12 = 0x1fffffff;\n  }" if (parenthesized_expression "(iVar12 < 0x7ffffffd)" ( (binary_expression "iVar12 < 0x7ffffffd" identifier < number_literal) )) (compound_statement "{\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }" { (if_statement "if (iVar12 < 1) goto LAB_0010d4d8;" if (parenthesized_expression "(iVar12 < 1)" ( (binary_expression "iVar12 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0010d4d8;" goto statement_identifier ;)) (expression_statement "iVar12 = iVar12 >> 2;" (assignment_expression "iVar12 = iVar12 >> 2" identifier = (binary_expression "iVar12 >> 2" identifier >> number_literal)) ;) }) (else_clause "else {\n    iVar12 = 0x1fffffff;\n  }" else (compound_statement "{\n    iVar12 = 0x1fffffff;\n  }" { (expression_statement "iVar12 = 0x1fffffff;" (assignment_expression "iVar12 = 0x1fffffff" identifier = number_literal) ;) }))) (do_statement "do {\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  } while (iVar12 != 0);" do (compound_statement "{\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  }" { (expression_statement "iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);" (assignment_expression "iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423)" identifier = (call_expression "FUN_0017eb90(iVar12 << 2,&DAT_0023a423)" identifier (argument_list "(iVar12 << 2,&DAT_0023a423)" ( (binary_expression "iVar12 << 2" identifier << number_literal) , (pointer_expression "&DAT_0023a423" & identifier) )))) ;) (if_statement "if (iVar13 != 0) {\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }" { comment (expression_statement "FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);" (call_expression "FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18)" identifier (argument_list "(piVar17,piVar21,iVar13,iVar12,uVar18)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0010ce6f;" goto statement_identifier ;) })) (expression_statement "iVar12 = iVar12 >> 1;" (assignment_expression "iVar12 = iVar12 >> 1" identifier = (binary_expression "iVar12 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_0010d4d8:\n                    /* try { // try from 0010d4e4 to 0010d4e8 has its CatchHandler @ 0010d638 */\n  FUN_001139b0(piVar17,piVar21,uVar18);" statement_identifier : comment (expression_statement "FUN_001139b0(piVar17,piVar21,uVar18);" (call_expression "FUN_001139b0(piVar17,piVar21,uVar18)" identifier (argument_list "(piVar17,piVar21,uVar18)" ( identifier , identifier , identifier ))) ;)) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0010ce6f:\n  FUN_00180760(iVar13,&DAT_0023a423);" statement_identifier : (expression_statement "FUN_00180760(iVar13,&DAT_0023a423);" (call_expression "FUN_00180760(iVar13,&DAT_0023a423)" identifier (argument_list "(iVar13,&DAT_0023a423)" ( identifier , (pointer_expression "&DAT_0023a423" & identifier) ))) ;)) comment (expression_statement "FUN_00108730(param_1,param_2,&local_28);" (call_expression "FUN_00108730(param_1,param_2,&local_28)" identifier (argument_list "(param_1,param_2,&local_28)" ( identifier , identifier , (pointer_expression "&local_28" & identifier) ))) ;) (if_statement "if (*(int *)(DAT_00302378 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }" if (parenthesized_expression "(*(int *)(DAT_00302378 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_00302378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_00302378 + 0xc)" * (cast_expression "(int *)(DAT_00302378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 0xc)" ( (binary_expression "DAT_00302378 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }" { comment (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",DAT_00302378)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar12 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    FUN_0005f0b0("../../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                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }" { comment comment (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);" (call_expression "FUN_0005f0b0("../../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 ))) ;) })) (expression_statement "local_98 = *(int *)(iVar12 + 0x521c);" (assignment_expression "local_98 = *(int *)(iVar12 + 0x521c)" identifier = (pointer_expression "*(int *)(iVar12 + 0x521c)" * (cast_expression "(int *)(iVar12 + 0x521c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x521c)" ( (binary_expression "iVar12 + 0x521c" identifier + number_literal) ))))) ;) (expression_statement "local_9c = *(int *)(iVar12 + 0x5218);" (assignment_expression "local_9c = *(int *)(iVar12 + 0x5218)" identifier = (pointer_expression "*(int *)(iVar12 + 0x5218)" * (cast_expression "(int *)(iVar12 + 0x5218)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x5218)" ( (binary_expression "iVar12 + 0x5218" identifier + number_literal) ))))) ;) (if_statement "if (local_98 == 0 && local_9c == 0) {\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }" if (parenthesized_expression "(local_98 == 0 && local_9c == 0)" ( (binary_expression "local_98 == 0 && local_9c == 0" (binary_expression "local_98 == 0" identifier == number_literal) && (binary_expression "local_9c == 0" identifier == number_literal)) )) (compound_statement "{\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }" { (expression_statement "iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);" (assignment_expression "iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(DAT_00302378 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_00302378 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00302378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_00302378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_00302378 + 0xc)" * (cast_expression "(int *)(DAT_00302378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 0xc)" ( (binary_expression "DAT_00302378 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_98 = *(int *)(iVar12 + 0x24);" (assignment_expression "local_98 = *(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_9c = *(int *)(iVar12 + 0x20);" (assignment_expression "local_9c = *(int *)(iVar12 + 0x20)" identifier = (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) ))))) ;) })) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "piVar17 = local_24;" (assignment_expression "piVar17 = local_24" identifier = identifier) ;) (if_statement "if (local_28 == local_24) {\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }" if (parenthesized_expression "(local_28 == local_24)" ( (binary_expression "local_28 == local_24" identifier == identifier) )) (compound_statement "{\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }" { (labeled_statement "LAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }" statement_identifier : (if_statement "if (piVar17 == (int *)0x0) {\n      return local_94;\n    }" if (parenthesized_expression "(piVar17 == (int *)0x0)" ( (binary_expression "piVar17 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return local_94;\n    }" { (return_statement "return local_94;" return identifier ;) }))) (expression_statement "FUN_001807a0(piVar17);" (call_expression "FUN_001807a0(piVar17)" identifier (argument_list "(piVar17)" ( identifier ))) ;) (return_statement "return local_94;" return identifier ;) })) (expression_statement "piVar17 = (int *)*local_28;" (assignment_expression "piVar17 = (int *)*local_28" identifier = (cast_expression "(int *)*local_28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_28" * identifier))) ;) (expression_statement "bVar1 = *(byte *)(piVar17 + 7);" (assignment_expression "bVar1 = *(byte *)(piVar17 + 7)" identifier = (pointer_expression "*(byte *)(piVar17 + 7)" * (cast_expression "(byte *)(piVar17 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 7)" ( (binary_expression "piVar17 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 1) != 0) {\n    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\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    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\n  }" { (expression_statement "local_7d = 0;" (assignment_expression "local_7d = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_34 = bVar1 & 1;" (assignment_expression "local_34 = bVar1 & 1" identifier = (binary_expression "bVar1 & 1" identifier & number_literal)) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);" (assignment_expression "lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1)" identifier = (call_expression "CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1)" identifier (argument_list "(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1)" ( (binary_expression "local_98 + -1 + (uint)(local_9c != 0)" (binary_expression "local_98 + -1" identifier + number_literal) + (call_expression "(uint)(local_9c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c != 0)" ( (binary_expression "local_9c != 0" identifier != number_literal) )))) , (binary_expression "local_9c + -1" identifier + number_literal) )))) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = -(local_98 + (uint)(local_9c != 0));" (assignment_expression "uVar19 = -(local_98 + (uint)(local_9c != 0))" identifier = (unary_expression "-(local_98 + (uint)(local_9c != 0))" - (parenthesized_expression "(local_98 + (uint)(local_9c != 0))" ( (binary_expression "local_98 + (uint)(local_9c != 0)" identifier + (call_expression "(uint)(local_9c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c != 0)" ( (binary_expression "local_9c != 0" identifier != number_literal) )))) )))) ;) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "piVar21 = local_28;" (assignment_expression "piVar21 = local_28" identifier = identifier) ;) (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);" do (compound_statement "{\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    }" { (expression_statement "lVar9 = CONCAT44(local_78,local_7c);" (assignment_expression "lVar9 = CONCAT44(local_78,local_7c)" identifier = (call_expression "CONCAT44(local_78,local_7c)" identifier (argument_list "(local_78,local_7c)" ( identifier , identifier )))) ;) (expression_statement "local_7c = (int)*(longlong *)(piVar17 + 1);" (assignment_expression "local_7c = (int)*(longlong *)(piVar17 + 1)" identifier = (cast_expression "(int)*(longlong *)(piVar17 + 1)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(longlong *)(piVar17 + 1)" * (cast_expression "(longlong *)(piVar17 + 1)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 1)" ( (binary_expression "piVar17 + 1" identifier + number_literal) )))))) ;) (expression_statement "local_78 = piVar17[2];" (assignment_expression "local_78 = piVar17[2]" identifier = (subscript_expression "piVar17[2]" identifier [ number_literal ])) ;) (expression_statement "lVar6 = *(longlong *)(piVar17 + 1);" (assignment_expression "lVar6 = *(longlong *)(piVar17 + 1)" identifier = (pointer_expression "*(longlong *)(piVar17 + 1)" * (cast_expression "(longlong *)(piVar17 + 1)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 1)" ( (binary_expression "piVar17 + 1" identifier + number_literal) ))))) ;) (if_statement "if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }" if (parenthesized_expression "(*(code **)(*piVar17 + 0x10) == FUN_00088ef0)" ( (binary_expression "*(code **)(*piVar17 + 0x10) == FUN_00088ef0" (pointer_expression "*(code **)(*piVar17 + 0x10)" * (cast_expression "(code **)(*piVar17 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar17 + 0x10)" ( (binary_expression "*piVar17 + 0x10" (pointer_expression "*piVar17" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }" { (expression_statement "bVar10 = *(byte *)(piVar17 + 0x24) >> 7;" (assignment_expression "bVar10 = *(byte *)(piVar17 + 0x24) >> 7" identifier = (binary_expression "*(byte *)(piVar17 + 0x24) >> 7" (pointer_expression "*(byte *)(piVar17 + 0x24)" * (cast_expression "(byte *)(piVar17 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 0x24)" ( (binary_expression "piVar17 + 0x24" identifier + number_literal) )))) >> number_literal)) ;) }) (else_clause "else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }" else (compound_statement "{\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }" { (expression_statement "bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);" (assignment_expression "bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17)" identifier = (call_expression "(**(code **)(*piVar17 + 0x10))(piVar17)" (parenthesized_expression "(**(code **)(*piVar17 + 0x10))" ( (pointer_expression "**(code **)(*piVar17 + 0x10)" * (pointer_expression "*(code **)(*piVar17 + 0x10)" * (cast_expression "(code **)(*piVar17 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar17 + 0x10)" ( (binary_expression "*piVar17 + 0x10" (pointer_expression "*piVar17" * identifier) + number_literal) ))))) )) (argument_list "(piVar17)" ( identifier )))) ;) }))) (expression_statement "local_54 = (int *)*piVar21;" (assignment_expression "local_54 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (expression_statement "lVar22 = lVar6;" (assignment_expression "lVar22 = lVar6" identifier = identifier) ;) (if_statement "if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }" if (parenthesized_expression "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }" { (if_statement "if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }" if (parenthesized_expression "(*(code **)(*local_54 + 0x14) == FUN_00089130)" ( (binary_expression "*(code **)(*local_54 + 0x14) == FUN_00089130" (pointer_expression "*(code **)(*local_54 + 0x14)" * (cast_expression "(code **)(*local_54 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_54 + 0x14)" ( (binary_expression "*local_54 + 0x14" (pointer_expression "*local_54" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n          if (-1 < (char)local_54[0x24]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }" { (if_statement "if (-1 < (char)local_54[0x24]) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }" if (parenthesized_expression "(-1 < (char)local_54[0x24])" ( (binary_expression "-1 < (char)local_54[0x24]" number_literal < (cast_expression "(char)local_54[0x24]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_54[0x24]" identifier [ number_literal ]))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }" { comment (expression_statement "FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");" (call_expression "FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address")" identifier (argument_list "("../../gold/output.h",0x107b,"do_load_address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_load_address"" " string_content ") ))) ;) })) (expression_statement "lVar22 = *(longlong *)(local_54 + 0xd);" (assignment_expression "lVar22 = *(longlong *)(local_54 + 0xd)" identifier = (pointer_expression "*(longlong *)(local_54 + 0xd)" * (cast_expression "(longlong *)(local_54 + 0xd)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0xd)" ( (binary_expression "local_54 + 0xd" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }" else (compound_statement "{\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }" { (expression_statement "lVar22 = (**(code **)(*local_54 + 0x14))(local_54);" (assignment_expression "lVar22 = (**(code **)(*local_54 + 0x14))(local_54)" identifier = (call_expression "(**(code **)(*local_54 + 0x14))(local_54)" (parenthesized_expression "(**(code **)(*local_54 + 0x14))" ( (pointer_expression "**(code **)(*local_54 + 0x14)" * (pointer_expression "*(code **)(*local_54 + 0x14)" * (cast_expression "(code **)(*local_54 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_54 + 0x14)" ( (binary_expression "*local_54 + 0x14" (pointer_expression "*local_54" * identifier) + number_literal) ))))) )) (argument_list "(local_54)" ( identifier )))) ;) (expression_statement "local_54 = (int *)*piVar21;" (assignment_expression "local_54 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) }))) })) (expression_statement "iVar12 = local_54[3];" (assignment_expression "iVar12 = local_54[3]" identifier = (subscript_expression "local_54[3]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = local_54[0x16];" (assignment_expression "iVar13 = local_54[0x16]" identifier = (subscript_expression "local_54[0x16]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = local_54[4];" (assignment_expression "iVar2 = local_54[4]" identifier = (subscript_expression "local_54[4]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = local_54[0x15];" (assignment_expression "uVar3 = local_54[0x15]" identifier = (subscript_expression "local_54[0x15]" identifier [ number_literal ])) ;) (if_statement "if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }" if (parenthesized_expression "((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9))" ( (binary_expression "(local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)" (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar22 - lVar6 != lVar8 - lVar9)" ( (binary_expression "lVar22 - lVar6 != lVar8 - lVar9" (binary_expression "lVar22 - lVar6" identifier - identifier) != (binary_expression "lVar8 - lVar9" identifier - identifier)) ))) )) (compound_statement "{\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }" { (labeled_statement "LAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);" statement_identifier : (expression_statement "local_4c = FUN_0007b810(uVar3,iVar13);" (assignment_expression "local_4c = FUN_0007b810(uVar3,iVar13)" identifier = (call_expression "FUN_0007b810(uVar3,iVar13)" identifier (argument_list "(uVar3,iVar13)" ( identifier , identifier )))) ;)) (labeled_statement "LAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);" statement_identifier : (expression_statement "local_50 = FUN_0007f710(param_2,1,local_4c);" (assignment_expression "local_50 = FUN_0007f710(param_2,1,local_4c)" identifier = (call_expression "FUN_0007f710(param_2,1,local_4c)" identifier (argument_list "(param_2,1,local_4c)" ( identifier , number_literal , identifier )))) ;)) (expression_statement "*(int *)(local_50 + 0x15c) = local_7c;" (assignment_expression "*(int *)(local_50 + 0x15c) = local_7c" (pointer_expression "*(int *)(local_50 + 0x15c)" * (cast_expression "(int *)(local_50 + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x15c)" ( (binary_expression "local_50 + 0x15c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(local_50 + 0x160) = local_78;" (assignment_expression "*(int *)(local_50 + 0x160) = local_78" (pointer_expression "*(int *)(local_50 + 0x160)" * (cast_expression "(int *)(local_50 + 0x160)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x160)" ( (binary_expression "local_50 + 0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(longlong *)(local_50 + 0x164) = lVar22;" (assignment_expression "*(longlong *)(local_50 + 0x164) = lVar22" (pointer_expression "*(longlong *)(local_50 + 0x164)" * (cast_expression "(longlong *)(local_50 + 0x164)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x164)" ( (binary_expression "local_50 + 0x164" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;" (assignment_expression "*(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2" (pointer_expression "*(byte *)(local_50 + 0x19c)" * (cast_expression "(byte *)(local_50 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x19c)" ( (binary_expression "local_50 + 0x19c" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_50 + 0x19c) | 2" (pointer_expression "*(byte *)(local_50 + 0x19c)" * (cast_expression "(byte *)(local_50 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x19c)" ( (binary_expression "local_50 + 0x19c" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }" if (parenthesized_expression "(*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3))" ( (binary_expression "*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)" (binary_expression "*(uint *)(local_50 + 0x180) < param_4" (pointer_expression "*(uint *)(local_50 + 0x180)" * (cast_expression "(uint *)(local_50 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x180)" ( (binary_expression "local_50 + 0x180" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)" (binary_expression "*(uint *)(local_50 + 0x180) - param_4" (pointer_expression "*(uint *)(local_50 + 0x180)" * (cast_expression "(uint *)(local_50 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x180)" ( (binary_expression "local_50 + 0x180" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(local_50 + 0x17c) < param_3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(local_50 + 0x17c) < param_3)" ( (binary_expression "*(uint *)(local_50 + 0x17c) < param_3" (pointer_expression "*(uint *)(local_50 + 0x17c)" * (cast_expression "(uint *)(local_50 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x17c)" ( (binary_expression "local_50 + 0x17c" identifier + number_literal) )))) < identifier) ))))) )) (compound_statement "{\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }" { (expression_statement "*(uint *)(local_50 + 0x17c) = param_3;" (assignment_expression "*(uint *)(local_50 + 0x17c) = param_3" (pointer_expression "*(uint *)(local_50 + 0x17c)" * (cast_expression "(uint *)(local_50 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x17c)" ( (binary_expression "local_50 + 0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(local_50 + 0x180) = param_4;" (assignment_expression "*(uint *)(local_50 + 0x180) = param_4" (pointer_expression "*(uint *)(local_50 + 0x180)" * (cast_expression "(uint *)(local_50 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x180)" ( (binary_expression "local_50 + 0x180" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "local_7d = 0;" (assignment_expression "local_7d = 0" identifier = number_literal) ;) (expression_statement "local_34 = bVar1 & 1;" (assignment_expression "local_34 = bVar1 & 1" identifier = (binary_expression "bVar1 & 1" identifier & number_literal)) ;) (if_statement "if (local_90 == 0) {\n          local_90 = local_50;\n        }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n          local_90 = local_50;\n        }" { (expression_statement "local_90 = local_50;" (assignment_expression "local_90 = local_50" identifier = identifier) ;) })) }) (else_clause "else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }" else (compound_statement "{\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }" { (expression_statement "lVar8 = lVar8 + CONCAT44(local_48,local_4c);" (assignment_expression "lVar8 = lVar8 + CONCAT44(local_48,local_4c)" identifier = (binary_expression "lVar8 + CONCAT44(local_48,local_4c)" identifier + (call_expression "CONCAT44(local_48,local_4c)" identifier (argument_list "(local_48,local_4c)" ( identifier , identifier ))))) ;) (expression_statement "lVar6 = lVar22;" (assignment_expression "lVar6 = lVar22" identifier = identifier) ;) (if_statement "if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }" if (parenthesized_expression "(local_98 != 0 || local_9c != 0)" ( (binary_expression "local_98 != 0 || local_9c != 0" (binary_expression "local_98 != 0" identifier != number_literal) || (binary_expression "local_9c != 0" identifier != number_literal)) )) (compound_statement "{\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }" { (expression_statement "lVar8 = lVar8 + lVar7;" (assignment_expression "lVar8 = lVar8 + lVar7" identifier = (binary_expression "lVar8 + lVar7" identifier + identifier)) ;) (expression_statement "lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);" (assignment_expression "lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8)" identifier (argument_list "((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8)" ( (binary_expression "(uint)((ulonglong)lVar8 >> 0x20) & uVar19" (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) ))) & identifier) , (binary_expression "-local_9c & (uint)lVar8" (unary_expression "-local_9c" - identifier) & (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "lVar6 = lVar22 + lVar7;" (assignment_expression "lVar6 = lVar22 + lVar7" identifier = (binary_expression "lVar22 + lVar7" identifier + identifier)) ;) (expression_statement "lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);" (assignment_expression "lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6)" identifier (argument_list "((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6)" ( (binary_expression "(uint)((ulonglong)lVar6 >> 0x20) & uVar19" (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_9c & (uint)lVar6" (unary_expression "-local_9c" - identifier) & (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) })) (expression_statement "local_48 = (uint)((ulonglong)lVar8 >> 0x20);" (assignment_expression "local_48 = (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_4c = (uint)lVar8;" (assignment_expression "local_4c = (uint)lVar8" identifier = (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar14 = (uint)((ulonglong)lVar6 >> 0x20);" (assignment_expression "uVar14 = (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) )))) ;) (if_statement "if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;" if (parenthesized_expression "(local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))" ( (binary_expression "local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6)" (binary_expression "local_48 < uVar14" identifier < identifier) || (binary_expression "local_48 - uVar14 < (uint)(local_4c < (uint)lVar6)" (binary_expression "local_48 - uVar14" identifier - identifier) < (call_expression "(uint)(local_4c < (uint)lVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_4c < (uint)lVar6)" ( (binary_expression "local_4c < (uint)lVar6" identifier < (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (goto_statement "goto LAB_0010d018;" goto statement_identifier ;)) (if_statement "if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }" if (parenthesized_expression "(local_7d != 0)" ( (binary_expression "local_7d != 0" identifier != number_literal) )) (compound_statement "{\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }" { (if_statement "if (local_54[0x14] != 8) goto LAB_0010d018;" if (parenthesized_expression "(local_54[0x14] != 8)" ( (binary_expression "local_54[0x14] != 8" (subscript_expression "local_54[0x14]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0010d018;" goto statement_identifier ;)) (if_statement "if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;" if (parenthesized_expression "((uVar3 & 0x400) == 0)" ( (binary_expression "(uVar3 & 0x400) == 0" (parenthesized_expression "(uVar3 & 0x400)" ( (binary_expression "uVar3 & 0x400" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0010d2c0;" goto statement_identifier ;)) (expression_statement "local_4c = FUN_0007b810(uVar3,iVar13);" (assignment_expression "local_4c = FUN_0007b810(uVar3,iVar13)" identifier = (call_expression "FUN_0007b810(uVar3,iVar13)" identifier (argument_list "(uVar3,iVar13)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_0010d029;" goto statement_identifier ;) })) (labeled_statement "LAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }" statement_identifier : (if_statement "if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }" if (parenthesized_expression "((local_34 != 0) && ((uVar3 & 1) != 0))" ( (binary_expression "(local_34 != 0) && ((uVar3 & 1) != 0)" (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar3 & 1) != 0)" ( (binary_expression "(uVar3 & 1) != 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }" { (if_statement "if (*(int *)(DAT_00302378 + 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }" if (parenthesized_expression "(*(int *)(DAT_00302378 + 8) == 0)" ( (binary_expression "*(int *)(DAT_00302378 + 8) == 0" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }" { comment (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",piVar21)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (expression_statement "local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);" (assignment_expression "local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d)" identifier = (pointer_expression "*(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d)" * (cast_expression "(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00302378 + 8) + 0x253d)" ( (binary_expression "*(int *)(DAT_00302378 + 8) + 0x253d" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (local_34 == 0) goto LAB_0010d018;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010d018;" goto statement_identifier ;)) }))) (expression_statement "local_4c = FUN_0007b810(uVar3,iVar13);" (assignment_expression "local_4c = FUN_0007b810(uVar3,iVar13)" identifier = (call_expression "FUN_0007b810(uVar3,iVar13)" identifier (argument_list "(uVar3,iVar13)" ( identifier , identifier )))) ;) }))) (expression_statement "FUN_000bfab0(local_50,param_2,*piVar21,local_4c);" (call_expression "FUN_000bfab0(local_50,param_2,*piVar21,local_4c)" identifier (argument_list "(local_50,param_2,*piVar21,local_4c)" ( identifier , identifier , (pointer_expression "*piVar21" * identifier) , identifier ))) ;) (expression_statement "iVar13 = *piVar21;" (assignment_expression "iVar13 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "uVar18 = *(undefined4 *)(iVar13 + 0x58);" (assignment_expression "uVar18 = *(undefined4 *)(iVar13 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(iVar13 + 0x58)" * (cast_expression "(undefined4 *)(iVar13 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x58)" ( (binary_expression "iVar13 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }" if (parenthesized_expression "((*(uint *)(iVar13 + 0x54) & 1) != 0)" ( (binary_expression "(*(uint *)(iVar13 + 0x54) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar13 + 0x54) & 1)" ( (binary_expression "*(uint *)(iVar13 + 0x54) & 1" (pointer_expression "*(uint *)(iVar13 + 0x54)" * (cast_expression "(uint *)(iVar13 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x54)" ( (binary_expression "iVar13 + 0x54" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        local_34 = 0;\n      }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar13 + 0x50) == 8)" ( (binary_expression "*(int *)(iVar13 + 0x50) == 8" (pointer_expression "*(int *)(iVar13 + 0x50)" * (cast_expression "(int *)(iVar13 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x50)" ( (binary_expression "iVar13 + 0x50" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }" { (expression_statement "bVar5 = iVar12 != 0 || iVar2 != 0;" (assignment_expression "bVar5 = iVar12 != 0 || iVar2 != 0" identifier = (binary_expression "iVar12 != 0 || iVar2 != 0" (binary_expression "iVar12 != 0" identifier != number_literal) || (binary_expression "iVar2 != 0" identifier != number_literal))) ;) (expression_statement "uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);" (assignment_expression "uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5)" identifier = (call_expression "CONCAT31((int3)((uint)uVar18 >> 8),bVar5)" identifier (argument_list "((int3)((uint)uVar18 >> 8),bVar5)" ( (call_expression "(int3)((uint)uVar18 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)uVar18 >> 8)" ( (binary_expression "(uint)uVar18 >> 8" (cast_expression "(uint)uVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (expression_statement "bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;" (assignment_expression "bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5" identifier = (binary_expression "((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5" (parenthesized_expression "((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1)" ( (binary_expression "(byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1" (call_expression "(byte)(*(uint *)(iVar13 + 0x54) >> 10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(uint *)(iVar13 + 0x54) >> 10)" ( (binary_expression "*(uint *)(iVar13 + 0x54) >> 10" (pointer_expression "*(uint *)(iVar13 + 0x54)" * (cast_expression "(uint *)(iVar13 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x54)" ( (binary_expression "iVar13 + 0x54" identifier + number_literal) )))) >> number_literal) ))) ^ number_literal) )) & identifier)) ;) (if_statement "if (bVar10 != 0) {\n          local_7d = bVar10;\n        }" if (parenthesized_expression "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          local_7d = bVar10;\n        }" { (expression_statement "local_7d = bVar10;" (assignment_expression "local_7d = bVar10" identifier = identifier) ;) })) })) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) (if_statement "if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }" if (parenthesized_expression "(local_24 == piVar21)" ( (binary_expression "local_24 == piVar21" identifier == identifier) )) (compound_statement "{\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }" { (expression_statement "piVar17 = local_28;" (assignment_expression "piVar17 = local_28" identifier = identifier) ;) (if_statement "if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }" if (parenthesized_expression "(local_90 != 0)" ( (binary_expression "local_90 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }" { (expression_statement "iVar12 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }" { comment (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",uVar18)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (if_statement "if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\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            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }" { (expression_statement "uVar15 = FUN_001085c0(param_1,param_2);" (assignment_expression "uVar15 = FUN_001085c0(param_1,param_2)" identifier = (call_expression "FUN_001085c0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "uVar19 = *(uint *)(local_90 + 0x15c);" (assignment_expression "uVar19 = *(uint *)(local_90 + 0x15c)" identifier = (pointer_expression "*(uint *)(local_90 + 0x15c)" * (cast_expression "(uint *)(local_90 + 0x15c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x15c)" ( (binary_expression "local_90 + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(local_90 + 0x160);" (assignment_expression "uVar3 = *(uint *)(local_90 + 0x160)" identifier = (pointer_expression "*(uint *)(local_90 + 0x160)" * (cast_expression "(uint *)(local_90 + 0x160)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x160)" ( (binary_expression "local_90 + 0x160" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(local_90 + 0x164);" (assignment_expression "uVar14 = *(uint *)(local_90 + 0x164)" identifier = (pointer_expression "*(uint *)(local_90 + 0x164)" * (cast_expression "(uint *)(local_90 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x164)" ( (binary_expression "local_90 + 0x164" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(local_90 + 0x168);" (assignment_expression "uVar4 = *(uint *)(local_90 + 0x168)" identifier = (pointer_expression "*(uint *)(local_90 + 0x168)" * (cast_expression "(uint *)(local_90 + 0x168)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x168)" ( (binary_expression "local_90 + 0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);" (assignment_expression "uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15)" identifier = (call_expression "FUN_00108650(param_1,uVar14,uVar4,uVar15)" identifier (argument_list "(param_1,uVar14,uVar4,uVar15)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar20 = (uint)((ulonglong)uVar23 >> 0x20);" (assignment_expression "uVar20 = (uint)((ulonglong)uVar23 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar23 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar23 >> 0x20)" ( (binary_expression "(ulonglong)uVar23 >> 0x20" (cast_expression "(ulonglong)uVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar16 = (uint)uVar23;" (assignment_expression "uVar16 = (uint)uVar23" identifier = (cast_expression "(uint)uVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "piVar17 = local_28;" (assignment_expression "piVar17 = local_28" identifier = identifier) ;) (if_statement "if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }" if (parenthesized_expression "((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15))" ( (binary_expression "(uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)" (parenthesized_expression "(uVar4 & local_98 + -1 + (uint)(local_9c != 0))" ( (binary_expression "uVar4 & local_98 + -1 + (uint)(local_9c != 0)" identifier & (binary_expression "local_98 + -1 + (uint)(local_9c != 0)" (binary_expression "local_98 + -1" identifier + number_literal) + (call_expression "(uint)(local_9c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c != 0)" ( (binary_expression "local_9c != 0" identifier != number_literal) ))))) )) < (call_expression "(uint)((uVar14 & local_9c - 1U) < uVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar14 & local_9c - 1U) < uVar15)" ( (binary_expression "(uVar14 & local_9c - 1U) < uVar15" (parenthesized_expression "(uVar14 & local_9c - 1U)" ( (binary_expression "uVar14 & local_9c - 1U" identifier & (binary_expression "local_9c - 1U" identifier - number_literal)) )) < identifier) )))) )) (compound_statement "{\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }" { (if_statement "if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }" if (parenthesized_expression "((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20))" ( (binary_expression "(uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)" (parenthesized_expression "(uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20)" ( (binary_expression "uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20" (binary_expression "uVar20 <= uVar4" identifier <= identifier) && (binary_expression "(uint)(uVar14 < uVar16) <= uVar4 - uVar20" (call_expression "(uint)(uVar14 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar16)" ( (binary_expression "uVar14 < uVar16" identifier < identifier) ))) <= (binary_expression "uVar4 - uVar20" identifier - identifier))) )) && (parenthesized_expression "(uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)" ( (binary_expression "uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20" (binary_expression "uVar20 <= uVar3" identifier <= identifier) && (binary_expression "(uint)(uVar19 < uVar16) <= uVar3 - uVar20" (call_expression "(uint)(uVar19 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar16)" ( (binary_expression "uVar19 < uVar16" identifier < identifier) ))) <= (binary_expression "uVar3 - uVar20" identifier - identifier))) ))) )) (compound_statement "{\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }" { (if_statement "if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }" if (parenthesized_expression "((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0'))" ( (binary_expression "(*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')" (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" ( (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')" ( (comma_expression "cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0'" (assignment_expression "cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23)" identifier = (call_expression "FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23)" identifier (argument_list "(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23)" ( identifier , number_literal , identifier , (binary_expression "uVar14 - uVar16" identifier - identifier) , (binary_expression "(uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (parenthesized_expression "(uVar4 - uVar20)" ( (binary_expression "uVar4 - uVar20" identifier - identifier) )) - (call_expression "(uint)(uVar14 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar16)" ( (binary_expression "uVar14 < uVar16" identifier < identifier) )))) , identifier )))) , (binary_expression "cVar11 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  FUN_0005ad30(uVar18);\n                }" { (expression_statement "uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );" (assignment_expression "uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  )" identifier = (call_expression "gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  )" identifier (argument_list "(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  )" ( (string_literal ""creating a segment to contain the file and program headers outside of any MEMORY region"" " string_content ") )))) ;) comment (expression_statement "FUN_0005ad30(uVar18);" (call_expression "FUN_0005ad30(uVar18)" identifier (argument_list "(uVar18)" ( identifier ))) ;) })) (expression_statement "local_94 = FUN_0007f710(param_2,1,4);" (assignment_expression "local_94 = FUN_0007f710(param_2,1,4)" identifier = (call_expression "FUN_0007f710(param_2,1,4)" identifier (argument_list "(param_2,1,4)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(uint *)(local_94 + 0x15c) = uVar19 - uVar16;" (assignment_expression "*(uint *)(local_94 + 0x15c) = uVar19 - uVar16" (pointer_expression "*(uint *)(local_94 + 0x15c)" * (cast_expression "(uint *)(local_94 + 0x15c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x15c)" ( (binary_expression "local_94 + 0x15c" identifier + number_literal) )))) = (binary_expression "uVar19 - uVar16" identifier - identifier)) ;) (expression_statement "*(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);" (assignment_expression "*(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16)" (pointer_expression "*(uint *)(local_94 + 0x160)" * (cast_expression "(uint *)(local_94 + 0x160)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x160)" ( (binary_expression "local_94 + 0x160" identifier + number_literal) )))) = (binary_expression "(uVar3 - uVar20) - (uint)(uVar19 < uVar16)" (parenthesized_expression "(uVar3 - uVar20)" ( (binary_expression "uVar3 - uVar20" identifier - identifier) )) - (call_expression "(uint)(uVar19 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar16)" ( (binary_expression "uVar19 < uVar16" identifier < identifier) ))))) ;) (expression_statement "*(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;" (assignment_expression "*(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2" (pointer_expression "*(byte *)(local_94 + 0x19c)" * (cast_expression "(byte *)(local_94 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x19c)" ( (binary_expression "local_94 + 0x19c" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_94 + 0x19c) | 2" (pointer_expression "*(byte *)(local_94 + 0x19c)" * (cast_expression "(byte *)(local_94 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x19c)" ( (binary_expression "local_94 + 0x19c" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(uint *)(local_94 + 0x164) = uVar14 - uVar16;" (assignment_expression "*(uint *)(local_94 + 0x164) = uVar14 - uVar16" (pointer_expression "*(uint *)(local_94 + 0x164)" * (cast_expression "(uint *)(local_94 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x164)" ( (binary_expression "local_94 + 0x164" identifier + number_literal) )))) = (binary_expression "uVar14 - uVar16" identifier - identifier)) ;) (expression_statement "*(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);" (assignment_expression "*(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (pointer_expression "*(uint *)(local_94 + 0x168)" * (cast_expression "(uint *)(local_94 + 0x168)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x168)" ( (binary_expression "local_94 + 0x168" identifier + number_literal) )))) = (binary_expression "(uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (parenthesized_expression "(uVar4 - uVar20)" ( (binary_expression "uVar4 - uVar20" identifier - identifier) )) - (call_expression "(uint)(uVar14 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar16)" ( (binary_expression "uVar14 < uVar16" identifier < identifier) ))))) ;) (expression_statement "piVar17 = local_28;" (assignment_expression "piVar17 = local_28" identifier = identifier) ;) })) }) (else_clause "else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }" else (compound_statement "{\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }" { (expression_statement "local_94 = local_90;" (assignment_expression "local_94 = local_90" identifier = identifier) ;) (expression_statement "*(uint *)(local_90 + 0x15c) = uVar19 - uVar16;" (assignment_expression "*(uint *)(local_90 + 0x15c) = uVar19 - uVar16" (pointer_expression "*(uint *)(local_90 + 0x15c)" * (cast_expression "(uint *)(local_90 + 0x15c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x15c)" ( (binary_expression "local_90 + 0x15c" identifier + number_literal) )))) = (binary_expression "uVar19 - uVar16" identifier - identifier)) ;) (expression_statement "*(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);" (assignment_expression "*(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16)" (pointer_expression "*(uint *)(local_90 + 0x160)" * (cast_expression "(uint *)(local_90 + 0x160)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x160)" ( (binary_expression "local_90 + 0x160" identifier + number_literal) )))) = (binary_expression "(uVar3 - uVar20) - (uint)(uVar19 < uVar16)" (parenthesized_expression "(uVar3 - uVar20)" ( (binary_expression "uVar3 - uVar20" identifier - identifier) )) - (call_expression "(uint)(uVar19 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar16)" ( (binary_expression "uVar19 < uVar16" identifier < identifier) ))))) ;) (expression_statement "*(uint *)(local_90 + 0x164) = uVar14 - uVar16;" (assignment_expression "*(uint *)(local_90 + 0x164) = uVar14 - uVar16" (pointer_expression "*(uint *)(local_90 + 0x164)" * (cast_expression "(uint *)(local_90 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x164)" ( (binary_expression "local_90 + 0x164" identifier + number_literal) )))) = (binary_expression "uVar14 - uVar16" identifier - identifier)) ;) (expression_statement "*(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;" (assignment_expression "*(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2" (pointer_expression "*(byte *)(local_90 + 0x19c)" * (cast_expression "(byte *)(local_90 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x19c)" ( (binary_expression "local_90 + 0x19c" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_90 + 0x19c) | 2" (pointer_expression "*(byte *)(local_90 + 0x19c)" * (cast_expression "(byte *)(local_90 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x19c)" ( (binary_expression "local_90 + 0x19c" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);" (assignment_expression "*(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (pointer_expression "*(uint *)(local_90 + 0x168)" * (cast_expression "(uint *)(local_90 + 0x168)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x168)" ( (binary_expression "local_90 + 0x168" identifier + number_literal) )))) = (binary_expression "(uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (parenthesized_expression "(uVar4 - uVar20)" ( (binary_expression "uVar4 - uVar20" identifier - identifier) )) - (call_expression "(uint)(uVar14 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar16)" ( (binary_expression "uVar14 < uVar16" identifier < identifier) ))))) ;) }))) })) })) (goto_statement "goto LAB_0010d48b;" goto statement_identifier ;) })) (expression_statement "piVar17 = (int *)*piVar21;" (assignment_expression "piVar17 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (expression_statement "local_4c = iVar12;" (assignment_expression "local_4c = iVar12" identifier = identifier) ;) (expression_statement "local_48 = iVar2;" (assignment_expression "local_48 = iVar2" identifier = identifier) ;) (expression_statement "lVar8 = lVar22;" (assignment_expression "lVar8 = lVar22" identifier = identifier) ;) }) while (parenthesized_expression "((*(byte *)(piVar17 + 7) & 1) != 0)" ( (binary_expression "(*(byte *)(piVar17 + 7) & 1) != 0" (parenthesized_expression "(*(byte *)(piVar17 + 7) & 1)" ( (binary_expression "*(byte *)(piVar17 + 7) & 1" (pointer_expression "*(byte *)(piVar17 + 7)" * (cast_expression "(byte *)(piVar17 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 7)" ( (binary_expression "piVar17 + 7" identifier + number_literal) )))) & number_literal) )) != number_literal) )) ;) })) comment (expression_statement "FUN_0005f0b0("../../gold/output.h",0xc5,"address");" (call_expression "FUN_0005f0b0("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;) })))
(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/* DWARF original prototype: Output_segment * create_segments(Script_sections * this, Layout *\n   layout, uint64_t dot_alignment) */\n\nOutput_segment * __thiscall\ngold::Script_sections::create_segments(Script_sections *this,Layout *layout,uint64_t dot_alignment)\n\n{\n  Elf_Xword *pEVar1;\n  uint64_t *puVar2;\n  byte bVar3;\n  _Iter_comp_iter<gold::Sort_output_sections> __comp;\n  General_options *pGVar4;\n  uint uVar5;\n  int iVar6;\n  _func_int_varargs *p_Var7;\n  uint uVar8;\n  pointer __last;\n  byte bVar9;\n  bool bVar10;\n  Output_segment *pOVar11;\n  Output_section **__buffer;\n  Output_section *pOVar12;\n  uint uVar13;\n  int iVar14;\n  size_t sizeof_headers;\n  pointer ppOVar15;\n  char *format;\n  uint uVar16;\n  int iVar17;\n  undefined4 extraout_EDX;\n  uint uVar18;\n  uint uVar19;\n  uint64_t length;\n  int local_9c;\n  int local_98;\n  Output_segment *local_94;\n  Output_segment *local_90;\n  byte local_7d;\n  uint local_7c;\n  int local_78;\n  uint local_6c;\n  uint local_68;\n  Output_section *local_54;\n  Output_segment *local_50;\n  uint local_4c;\n  uint local_48;\n  undefined8 local_44;\n  byte local_34;\n  Section_list sections;\n  \n  if (this->saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/script-sections.cc",0xf83,"create_segments");\n  }\n  if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((parameters->options_->relocatable_).value != false) {\n    return (Output_segment *)0x0;\n  }\n  if (this->phdrs_elements_ != (Phdrs_elements *)0x0) {\n    attach_sections_using_phdrs_clause(this,layout);\n    pOVar11 = set_phdrs_clause_addresses(this,layout,dot_alignment);\n    return pOVar11;\n  }\n  sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_start = (pointer)0x0;\n  sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_finish = (pointer)0x0;\n  sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_end_of_storage = (pointer)0x0;\n                    /* try { // try from 0010cde5 to 0010cde9 has its CatchHandler @ 0010d648 */\n  Layout::get_allocated_sections(layout,&sections);\n  __last = sections.\n           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n           ._M_finish;\n  ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_start;\n  __comp._M_comp.elements_ = (Sort_output_sections)this->sections_elements_;\n  iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_finish -\n           (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start;\n  if (iVar17 < 0x7ffffffd) {\n    if (iVar17 < 1) goto LAB_0010d4d8;\n    iVar17 = iVar17 >> 2;\n  }\n  else {\n    iVar17 = 0x1fffffff;\n  }\n  do {\n    __buffer = (Output_section **)operator_new(iVar17 << 2,(nothrow_t *)&std::nothrow);\n    if (__buffer != (Output_section **)0x0) {\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      std::\n      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )ppOVar15,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )__last,__buffer,iVar17,__comp);\n      goto LAB_0010ce6f;\n    }\n    iVar17 = iVar17 >> 1;\n  } while (iVar17 != 0);\nLAB_0010d4d8:\n                    /* try { // try from 0010d4e4 to 0010d4e8 has its CatchHandler @ 0010d638 */\n  std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n            ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )ppOVar15,\n             (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last,__comp);\n  __buffer = (Output_section **)0x0;\nLAB_0010ce6f:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);\n                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */\n  create_note_and_tls_segments(this,layout,&sections);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  pGVar4 = parameters->options_;\n  if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  local_98 = *(int *)((int)&(pGVar4->max_page_size_).value + 4);\n  local_9c = (int)(pGVar4->max_page_size_).value;\n  if (local_98 == 0 && local_9c == 0) {\n    iVar17 = *(int *)(parameters->target_ + 4);\n    local_98 = *(int *)(iVar17 + 0x24);\n    local_9c = *(int *)(iVar17 + 0x20);\n  }\n  local_94 = (Output_segment *)0x0;\n  ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish;\n  if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_start ==\n      sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_finish) {\nLAB_0010d48b:\n    if (ppOVar15 == (pointer)0x0) {\n      return local_94;\n    }\n    operator_delete(ppOVar15);\n    return local_94;\n  }\n  pOVar12 = *sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_start;\n  bVar3 = (pOVar12->super_Output_data).field_0x1c;\n  if ((bVar3 & 1) != 0) {\n    local_7d = 0;\n    local_50 = (Output_segment *)0x0;\n    local_34 = bVar3 & 1;\n    local_4c = 0;\n    uVar18 = local_9c - 1;\n    local_48 = 0;\n    iVar17 = local_98 + -1 + (uint)(local_9c != 0);\n    local_90 = (Output_segment *)0x0;\n    local_6c = 0;\n    uVar16 = -(local_98 + (uint)(local_9c != 0));\n    local_68 = 0;\n    local_7c = 0;\n    local_78 = 0;\n    ppOVar15 = sections.\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start;\n    do {\n      puVar2 = &(pOVar12->super_Output_data).address_;\n      uVar5 = (uint)*puVar2;\n      iVar6 = *(int *)((int)&(pOVar12->super_Output_data).address_ + 4);\n      local_44 = *puVar2;\n      p_Var7 = (pOVar12->super_Output_data)._vptr_Output_data[4];\n      if (p_Var7 == Output_section::do_has_load_address) {\n        bVar9 = (byte)pOVar12->field_0x90 >> 7;\n      }\n      else {\n        iVar14 = (*p_Var7)(pOVar12);\n        bVar9 = (byte)iVar14;\n      }\n      local_54 = *ppOVar15;\n      if (bVar9 != 0) {\n        p_Var7 = (local_54->super_Output_data)._vptr_Output_data[5];\n        if (p_Var7 == Output_section::do_load_address) {\n          if (-1 < (char)local_54->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n          }\n          local_44 = local_54->load_address_;\n        }\n        else {\n          iVar14 = (*p_Var7)(local_54);\n          local_54 = *ppOVar15;\n          local_44 = CONCAT44(extraout_EDX,iVar14);\n        }\n      }\n      uVar8 = (uint)(local_54->super_Output_data).data_size_;\n      iVar14 = *(int *)((int)&(local_54->super_Output_data).data_size_ + 4);\n      pEVar1 = &local_54->flags_;\n      if ((local_50 == (Output_segment *)0x0) ||\n         ((local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5) !=\n          (local_68 - local_78) - (uint)(local_6c < local_7c) ||\n          (uint)local_44 - uVar5 != local_6c - local_7c)) {\nLAB_0010d018:\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\nLAB_0010d029:\n        local_50 = Layout::make_output_segment(layout,1,local_4c);\n        *(uint *)&local_50->vaddr_ = uVar5;\n        *(int *)((int)&local_50->vaddr_ + 4) = iVar6;\n        *(uint *)&local_50->paddr_ = (uint)local_44;\n        uVar13 = *(uint *)((int)&local_50->min_p_align_ + 4);\n        *(uint *)((int)&local_50->paddr_ + 4) = local_44._4_4_;\n        local_50->field_0x19c = local_50->field_0x19c | 2;\n        if (uVar13 < dot_alignment._4_4_ ||\n            uVar13 - dot_alignment._4_4_ <\n            (uint)((uint)local_50->min_p_align_ < (uint)dot_alignment)) {\n          local_50->min_p_align_ = dot_alignment;\n        }\n        local_7d = 0;\n        local_34 = bVar3 & 1;\n        if (local_90 == (Output_segment *)0x0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        bVar10 = CARRY4(local_6c,local_4c);\n        local_4c = local_6c + local_4c;\n        local_48 = local_68 + local_48 + (uint)bVar10;\n        uVar13 = local_44._4_4_;\n        uVar19 = (uint)local_44;\n        if (local_98 != 0 || local_9c != 0) {\n          local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16;\n          local_4c = -local_9c & local_4c + uVar18;\n          uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16;\n          uVar19 = -local_9c & (uint)local_44 + uVar18;\n        }\n        if (local_48 < uVar13 || local_48 - uVar13 < (uint)(local_4c < uVar19)) goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54->type_ != 8) goto LAB_0010d018;\n          if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = Layout::section_flags_to_segment(*pEVar1);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((*pEVar1 & 1) != 0)) {\n          if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          local_34 = (parameters->options_->omagic_).value;\n          if ((bool)local_34 == false) goto LAB_0010d018;\n        }\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\n      }\n      Output_segment::add_output_section_to_load(local_50,layout,*ppOVar15,local_4c);\n      uVar13 = (uint)(*ppOVar15)->flags_;\n      if ((uVar13 & 1) != 0) {\n        local_34 = 0;\n      }\n      if (((*ppOVar15)->type_ == 8) &&\n         (bVar9 = ((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0), bVar9 != 0)) {\n        local_7d = bVar9;\n      }\n      ppOVar15 = ppOVar15 + 1;\n      if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n          ._M_impl._M_finish == ppOVar15) {\n        ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                   ._M_impl._M_start;\n        if (local_90 != (Output_segment *)0x0) {\n          pGVar4 = parameters->options_;\n          if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false)) {\n            sizeof_headers = total_header_size(this,layout);\n            uVar16 = (uint)local_90->vaddr_;\n            uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);\n            uVar5 = (uint)local_90->paddr_;\n            uVar8 = *(uint *)((int)&local_90->paddr_ + 4);\n            length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);\n            local_44._0_4_ = (uint)length;\n            local_44._4_4_ = (uint)(length >> 0x20);\n            ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start;\n            if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      pOVar12 = *ppOVar15;\n      local_6c = (uint)local_44;\n      local_68 = local_44._4_4_;\n      local_7c = uVar5;\n      local_78 = iVar6;\n      local_4c = uVar8;\n      local_48 = iVar14;\n    } while (((pOVar12->super_Output_data).field_0x1c & 1) != 0);\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0xc5,"address");\n}\n\n" comment comment comment (ERROR "Output_segment * __thiscall\ngold::Script_sections::create_segments(Script_sections *this,Layout *layout,uint64_t dot_alignment)" (binary_expression "Output_segment * __thiscall\ngold::Script_sections::create_segments(Script_sections *this" (binary_expression "Output_segment * __thiscall" identifier * identifier) (ERROR "gold::Script_sections::create_segments(Script_sections" identifier : : identifier : : identifier ( identifier) * identifier) , type_identifier (pointer_declarator "*layout" * identifier) , identifier identifier )) (compound_statement "{\n  Elf_Xword *pEVar1;\n  uint64_t *puVar2;\n  byte bVar3;\n  _Iter_comp_iter<gold::Sort_output_sections> __comp;\n  General_options *pGVar4;\n  uint uVar5;\n  int iVar6;\n  _func_int_varargs *p_Var7;\n  uint uVar8;\n  pointer __last;\n  byte bVar9;\n  bool bVar10;\n  Output_segment *pOVar11;\n  Output_section **__buffer;\n  Output_section *pOVar12;\n  uint uVar13;\n  int iVar14;\n  size_t sizeof_headers;\n  pointer ppOVar15;\n  char *format;\n  uint uVar16;\n  int iVar17;\n  undefined4 extraout_EDX;\n  uint uVar18;\n  uint uVar19;\n  uint64_t length;\n  int local_9c;\n  int local_98;\n  Output_segment *local_94;\n  Output_segment *local_90;\n  byte local_7d;\n  uint local_7c;\n  int local_78;\n  uint local_6c;\n  uint local_68;\n  Output_section *local_54;\n  Output_segment *local_50;\n  uint local_4c;\n  uint local_48;\n  undefined8 local_44;\n  byte local_34;\n  Section_list sections;\n  \n  if (this->saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/script-sections.cc",0xf83,"create_segments");\n  }\n  if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((parameters->options_->relocatable_).value != false) {\n    return (Output_segment *)0x0;\n  }\n  if (this->phdrs_elements_ != (Phdrs_elements *)0x0) {\n    attach_sections_using_phdrs_clause(this,layout);\n    pOVar11 = set_phdrs_clause_addresses(this,layout,dot_alignment);\n    return pOVar11;\n  }\n  sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_start = (pointer)0x0;\n  sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_finish = (pointer)0x0;\n  sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_end_of_storage = (pointer)0x0;\n                    /* try { // try from 0010cde5 to 0010cde9 has its CatchHandler @ 0010d648 */\n  Layout::get_allocated_sections(layout,&sections);\n  __last = sections.\n           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n           ._M_finish;\n  ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_start;\n  __comp._M_comp.elements_ = (Sort_output_sections)this->sections_elements_;\n  iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_finish -\n           (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start;\n  if (iVar17 < 0x7ffffffd) {\n    if (iVar17 < 1) goto LAB_0010d4d8;\n    iVar17 = iVar17 >> 2;\n  }\n  else {\n    iVar17 = 0x1fffffff;\n  }\n  do {\n    __buffer = (Output_section **)operator_new(iVar17 << 2,(nothrow_t *)&std::nothrow);\n    if (__buffer != (Output_section **)0x0) {\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      std::\n      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )ppOVar15,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )__last,__buffer,iVar17,__comp);\n      goto LAB_0010ce6f;\n    }\n    iVar17 = iVar17 >> 1;\n  } while (iVar17 != 0);\nLAB_0010d4d8:\n                    /* try { // try from 0010d4e4 to 0010d4e8 has its CatchHandler @ 0010d638 */\n  std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n            ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )ppOVar15,\n             (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last,__comp);\n  __buffer = (Output_section **)0x0;\nLAB_0010ce6f:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);\n                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */\n  create_note_and_tls_segments(this,layout,&sections);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  pGVar4 = parameters->options_;\n  if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  local_98 = *(int *)((int)&(pGVar4->max_page_size_).value + 4);\n  local_9c = (int)(pGVar4->max_page_size_).value;\n  if (local_98 == 0 && local_9c == 0) {\n    iVar17 = *(int *)(parameters->target_ + 4);\n    local_98 = *(int *)(iVar17 + 0x24);\n    local_9c = *(int *)(iVar17 + 0x20);\n  }\n  local_94 = (Output_segment *)0x0;\n  ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish;\n  if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_start ==\n      sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_finish) {\nLAB_0010d48b:\n    if (ppOVar15 == (pointer)0x0) {\n      return local_94;\n    }\n    operator_delete(ppOVar15);\n    return local_94;\n  }" { (declaration "Elf_Xword *pEVar1;" type_identifier (pointer_declarator "*pEVar1" * identifier) ;) (declaration "uint64_t *puVar2;" primitive_type (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (ERROR "_Iter_comp_iter<gold::" (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : :) (expression_statement "Sort_output_sections> __comp;" (binary_expression "Sort_output_sections> __comp" identifier > identifier) ;) (declaration "General_options *pGVar4;" type_identifier (pointer_declarator "*pGVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "_func_int_varargs *p_Var7;" type_identifier (pointer_declarator "*p_Var7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "pointer __last;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "Output_segment *pOVar11;" type_identifier (pointer_declarator "*pOVar11" * identifier) ;) (declaration "Output_section **__buffer;" type_identifier (pointer_declarator "**__buffer" * (pointer_declarator "*__buffer" * identifier)) ;) (declaration "Output_section *pOVar12;" type_identifier (pointer_declarator "*pOVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "size_t sizeof_headers;" primitive_type identifier ;) (declaration "pointer ppOVar15;" type_identifier identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint64_t length;" primitive_type identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "Output_segment *local_94;" type_identifier (pointer_declarator "*local_94" * identifier) ;) (declaration "Output_segment *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "byte local_7d;" type_identifier identifier ;) (declaration "uint local_7c;" type_identifier identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "Output_section *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "Output_segment *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "undefined8 local_44;" type_identifier identifier ;) (declaration "byte local_34;" type_identifier identifier ;) (declaration "Section_list sections;" type_identifier identifier ;) (if_statement "if (this->saw_sections_clause_ == false) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/script-sections.cc",0xf83,"create_segments");\n  }" if (parenthesized_expression "(this->saw_sections_clause_ == false)" ( (binary_expression "this->saw_sections_clause_ == false" (field_expression "this->saw_sections_clause_" identifier -> field_identifier) == false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/script-sections.cc",0xf83,"create_segments");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/script-sections.cc",0xf83,"create_segments");" (call_expression "do_gold_unreachable("../../gold/script-sections.cc",0xf83,"create_segments")" identifier (argument_list "("../../gold/script-sections.cc",0xf83,"create_segments")" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""create_segments"" " string_content ") ))) ;) })) (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_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 ((parameters->options_->relocatable_).value != false) {\n    return (Output_segment *)0x0;\n  }" if (parenthesized_expression "((parameters->options_->relocatable_).value != false)" ( (binary_expression "(parameters->options_->relocatable_).value != false" (field_expression "(parameters->options_->relocatable_).value" (parenthesized_expression "(parameters->options_->relocatable_)" ( (field_expression "parameters->options_->relocatable_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n    return (Output_segment *)0x0;\n  }" { (return_statement "return (Output_segment *)0x0;" return (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (this->phdrs_elements_ != (Phdrs_elements *)0x0) {\n    attach_sections_using_phdrs_clause(this,layout);\n    pOVar11 = set_phdrs_clause_addresses(this,layout,dot_alignment);\n    return pOVar11;\n  }" if (parenthesized_expression "(this->phdrs_elements_ != (Phdrs_elements *)0x0)" ( (binary_expression "this->phdrs_elements_ != (Phdrs_elements *)0x0" (field_expression "this->phdrs_elements_" identifier -> field_identifier) != (cast_expression "(Phdrs_elements *)0x0" ( (type_descriptor "Phdrs_elements *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    attach_sections_using_phdrs_clause(this,layout);\n    pOVar11 = set_phdrs_clause_addresses(this,layout,dot_alignment);\n    return pOVar11;\n  }" { (expression_statement "attach_sections_using_phdrs_clause(this,layout);" (call_expression "attach_sections_using_phdrs_clause(this,layout)" identifier (argument_list "(this,layout)" ( identifier , identifier ))) ;) (expression_statement "pOVar11 = set_phdrs_clause_addresses(this,layout,dot_alignment);" (assignment_expression "pOVar11 = set_phdrs_clause_addresses(this,layout,dot_alignment)" identifier = (call_expression "set_phdrs_clause_addresses(this,layout,dot_alignment)" identifier (argument_list "(this,layout,dot_alignment)" ( identifier , identifier , identifier )))) ;) (return_statement "return pOVar11;" return identifier ;) })) (expression_statement "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_start = (pointer)0x0;" (assignment_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_start = (pointer)0x0" (field_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_start" (field_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "sections.super__Vector_base<gold::Output_section*,_std" (binary_expression "sections.super__Vector_base<gold" (field_expression "sections.super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_finish = (pointer)0x0;" (assignment_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_finish = (pointer)0x0" (field_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_finish" (field_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "sections.super__Vector_base<gold::Output_section*,_std" (binary_expression "sections.super__Vector_base<gold" (field_expression "sections.super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_end_of_storage = (pointer)0x0;" (assignment_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_end_of_storage = (pointer)0x0" (field_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n  ._M_end_of_storage" (field_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "sections.super__Vector_base<gold::Output_section*,_std" (binary_expression "sections.super__Vector_base<gold" (field_expression "sections.super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) comment (labeled_statement "Layout::get_allocated_sections(layout,&sections);" statement_identifier : (ERROR ":" :) (expression_statement "get_allocated_sections(layout,&sections);" (call_expression "get_allocated_sections(layout,&sections)" identifier (argument_list "(layout,&sections)" ( identifier , (pointer_expression "&sections" & identifier) ))) ;)) (expression_statement "__last = sections.\n           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n           ._M_finish;" (field_expression "__last = sections.\n           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl\n           ._M_finish" (field_expression "__last = sections.\n           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>._M_impl" (binary_expression "__last = sections.\n           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__last = sections.\n           super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "__last = sections.\n           super__Vector_base<gold::Output_section*,_std" (assignment_expression "__last = sections.\n           super__Vector_base<gold" identifier = (binary_expression "sections.\n           super__Vector_base<gold" (field_expression "sections.\n           super__Vector_base" identifier . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_start;" (field_expression "ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_start" (field_expression "ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl" (binary_expression "ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar15 = sections.\n             super__Vector_base<gold" identifier = (binary_expression "sections.\n             super__Vector_base<gold" (field_expression "sections.\n             super__Vector_base" identifier . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "__comp._M_comp.elements_ = (Sort_output_sections)this->sections_elements_;" (assignment_expression "__comp._M_comp.elements_ = (Sort_output_sections)this->sections_elements_" (field_expression "__comp._M_comp.elements_" (field_expression "__comp._M_comp" identifier . field_identifier) . field_identifier) = (cast_expression "(Sort_output_sections)this->sections_elements_" ( (type_descriptor "Sort_output_sections" type_identifier) ) (field_expression "this->sections_elements_" identifier -> field_identifier))) ;) (expression_statement "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_finish -\n           (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start;" (field_expression "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_finish -\n           (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start" (field_expression "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_finish -\n           (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl" (binary_expression "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_finish -\n           (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_finish -\n           (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_finish -\n           (int)sections.\n                super__Vector_base<gold::Output_section*,_std" (binary_expression "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_finish -\n           (int)sections.\n                super__Vector_base<gold" (binary_expression "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_finish -\n           (int)sections.\n                super__Vector_base" (field_expression "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_finish" (field_expression "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl" (binary_expression "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "iVar17 = (int)sections.\n                super__Vector_base<gold::Output_section*,_std" (assignment_expression "iVar17 = (int)sections.\n                super__Vector_base<gold" identifier = (binary_expression "(int)sections.\n                super__Vector_base<gold" (cast_expression "(int)sections.\n                super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "sections.\n                super__Vector_base" identifier . field_identifier)) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)sections.\n                super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "sections.\n                super__Vector_base" identifier . field_identifier))) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (iVar17 < 0x7ffffffd) {\n    if (iVar17 < 1) goto LAB_0010d4d8;\n    iVar17 = iVar17 >> 2;\n  }\n  else {\n    iVar17 = 0x1fffffff;\n  }" if (parenthesized_expression "(iVar17 < 0x7ffffffd)" ( (binary_expression "iVar17 < 0x7ffffffd" identifier < number_literal) )) (compound_statement "{\n    if (iVar17 < 1) goto LAB_0010d4d8;\n    iVar17 = iVar17 >> 2;\n  }" { (if_statement "if (iVar17 < 1) goto LAB_0010d4d8;" if (parenthesized_expression "(iVar17 < 1)" ( (binary_expression "iVar17 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0010d4d8;" goto statement_identifier ;)) (expression_statement "iVar17 = iVar17 >> 2;" (assignment_expression "iVar17 = iVar17 >> 2" identifier = (binary_expression "iVar17 >> 2" identifier >> number_literal)) ;) }) (else_clause "else {\n    iVar17 = 0x1fffffff;\n  }" else (compound_statement "{\n    iVar17 = 0x1fffffff;\n  }" { (expression_statement "iVar17 = 0x1fffffff;" (assignment_expression "iVar17 = 0x1fffffff" identifier = number_literal) ;) }))) (do_statement "do {\n    __buffer = (Output_section **)operator_new(iVar17 << 2,(nothrow_t *)&std::nothrow);\n    if (__buffer != (Output_section **)0x0) {\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      std::\n      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )ppOVar15,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )__last,__buffer,iVar17,__comp);\n      goto LAB_0010ce6f;\n    }\n    iVar17 = iVar17 >> 1;\n  } while (iVar17 != 0);" do (compound_statement "{\n    __buffer = (Output_section **)operator_new(iVar17 << 2,(nothrow_t *)&std::nothrow);\n    if (__buffer != (Output_section **)0x0) {\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      std::\n      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )ppOVar15,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )__last,__buffer,iVar17,__comp);\n      goto LAB_0010ce6f;\n    }\n    iVar17 = iVar17 >> 1;\n  }" { (expression_statement "__buffer = (Output_section **)operator_new(iVar17 << 2,(nothrow_t *)&std::nothrow);" (assignment_expression "__buffer = (Output_section **)operator_new(iVar17 << 2,(nothrow_t *)&std::nothrow)" identifier = (cast_expression "(Output_section **)operator_new(iVar17 << 2,(nothrow_t *)&std::nothrow)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "operator_new(iVar17 << 2,(nothrow_t *)&std::nothrow)" identifier (argument_list "(iVar17 << 2,(nothrow_t *)&std::nothrow)" ( (binary_expression "iVar17 << 2" 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_section **)0x0) {\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      std::\n      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )ppOVar15,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )__last,__buffer,iVar17,__comp);\n      goto LAB_0010ce6f;\n    }" if (parenthesized_expression "(__buffer != (Output_section **)0x0)" ( (binary_expression "__buffer != (Output_section **)0x0" identifier != (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */\n      std::\n      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )ppOVar15,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )__last,__buffer,iVar17,__comp);\n      goto LAB_0010ce6f;\n    }" { comment (ERROR "std::\n      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n                ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )ppOVar15,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )__last,__buffer,iVar17,__comp);" (comma_expression "std::\n      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int,___gnu_cxx" (binary_expression "std::\n      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold::Output_section**,_int" (binary_expression "std::\n      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,_gold" (binary_expression "std::\n      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" identifier (ERROR "::\n      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*" : : (binary_expression "__stable_sort_adaptive<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (binary_expression "Output_section**,_std" identifier * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) : : (binary_expression "vector<gold" identifier < identifier) : : identifier *) > identifier) > (ERROR "," ,) identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_int" * (ERROR "," ,) identifier)) , identifier) : : identifier : : (binary_expression "_Iter_comp_iter<gold" identifier < identifier) : : (binary_expression "Sort_output_sections>_" identifier > identifier) > ( ( (comma_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )ppOVar15,\n                 (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )__last,__buffer,iVar17,__comp)" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )ppOVar15" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > (ERROR ")" )) identifier) , (parenthesized_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )__last,__buffer,iVar17,__comp)" ( (comma_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )__last,__buffer,iVar17,__comp" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n                  )__last" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > (ERROR ")" )) identifier) , (comma_expression "__buffer,iVar17,__comp" identifier , (comma_expression "iVar17,__comp" identifier , identifier))) ))) ;) (goto_statement "goto LAB_0010ce6f;" goto statement_identifier ;) })) (expression_statement "iVar17 = iVar17 >> 1;" (assignment_expression "iVar17 = iVar17 >> 1" identifier = (binary_expression "iVar17 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_0010d4d8:\n                    /* try { // try from 0010d4e4 to 0010d4e8 has its CatchHandler @ 0010d638 */\n  std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n            ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )ppOVar15,\n             (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last,__comp);\n  __buffer = (Output_section **)0x0;\nLAB_0010ce6f:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);\n                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */\n  create_note_and_tls_segments(this,layout,&sections);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  pGVar4 = parameters->options_;\n  if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  local_98 = *(int *)((int)&(pGVar4->max_page_size_).value + 4);\n  local_9c = (int)(pGVar4->max_page_size_).value;\n  if (local_98 == 0 && local_9c == 0) {\n    iVar17 = *(int *)(parameters->target_ + 4);\n    local_98 = *(int *)(iVar17 + 0x24);\n    local_9c = *(int *)(iVar17 + 0x20);\n  }\n  local_94 = (Output_segment *)0x0;\n  ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish;\n  if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_start ==\n      sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_finish) {\nLAB_0010d48b:\n    if (ppOVar15 == (pointer)0x0) {\n      return local_94;\n    }\n    operator_delete(ppOVar15);" statement_identifier : comment (expression_statement "std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n            ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )ppOVar15,\n             (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last,__comp);\n  __buffer = (Output_section **)0x0;\nLAB_0010ce6f:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);\n                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */\n  create_note_and_tls_segments(this,layout,&sections);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  pGVar4 = parameters->options_;\n  if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  local_98 = *(int *)((int)&(pGVar4->max_page_size_).value + 4);\n  local_9c = (int)(pGVar4->max_page_size_).value;\n  if (local_98 == 0 && local_9c == 0) {\n    iVar17 = *(int *)(parameters->target_ + 4);\n    local_98 = *(int *)(iVar17 + 0x24);\n    local_9c = *(int *)(iVar17 + 0x20);\n  }\n  local_94 = (Output_segment *)0x0;\n  ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish;\n  if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_start ==\n      sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_finish) {\nLAB_0010d48b:\n    if (ppOVar15 == (pointer)0x0) {\n      return local_94;\n    }\n    operator_delete(ppOVar15);" (binary_expression "std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_>\n            ((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )ppOVar15,\n             (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last,__comp);\n  __buffer = (Output_section **)0x0;\nLAB_0010ce6f:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);\n                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */\n  create_note_and_tls_segments(this,layout,&sections);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  pGVar4 = parameters->options_;\n  if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  local_98 = *(int *)((int)&(pGVar4->max_page_size_).value + 4);\n  local_9c = (int)(pGVar4->max_page_size_).value;\n  if (local_98 == 0 && local_9c == 0) {\n    iVar17 = *(int *)(parameters->target_ + 4);\n    local_98 = *(int *)(iVar17 + 0x24);\n    local_9c = *(int *)(iVar17 + 0x20);\n  }\n  local_94 = (Output_segment *)0x0;\n  ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish;\n  if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_start ==\n      sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_finish) {\nLAB_0010d48b:\n    if (ppOVar15 == (pointer)0x0) {\n      return local_94;\n    }\n    operator_delete(ppOVar15)" (binary_expression "std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold::Sort_output_sections>_" (binary_expression "std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx::__ops::_Iter_comp_iter<gold" (binary_expression "std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_>,___gnu_cxx" (binary_expression "std::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*>_" identifier (ERROR "::\n  __inplace_stable_sort<__gnu_cxx::__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*" : : (binary_expression "__inplace_stable_sort<__gnu_cxx" identifier < identifier) : : (binary_expression "__normal_iterator<gold" identifier < identifier) : : (binary_expression "Output_section**,_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 "::Sort_output_sections" : : identifier) > identifier) > (parenthesized_expression "((__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )ppOVar15,\n             (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last,__comp);\n  __buffer = (Output_section **)0x0;\nLAB_0010ce6f:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);\n                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */\n  create_note_and_tls_segments(this,layout,&sections);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  pGVar4 = parameters->options_;\n  if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  local_98 = *(int *)((int)&(pGVar4->max_page_size_).value + 4);\n  local_9c = (int)(pGVar4->max_page_size_).value;\n  if (local_98 == 0 && local_9c == 0) {\n    iVar17 = *(int *)(parameters->target_ + 4);\n    local_98 = *(int *)(iVar17 + 0x24);\n    local_9c = *(int *)(iVar17 + 0x20);\n  }\n  local_94 = (Output_segment *)0x0;\n  ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish;\n  if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_start ==\n      sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_finish) {\nLAB_0010d48b:\n    if (ppOVar15 == (pointer)0x0) {\n      return local_94;\n    }\n    operator_delete(ppOVar15)" ( (call_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )ppOVar15,\n             (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last,__comp);\n  __buffer = (Output_section **)0x0;\nLAB_0010ce6f:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);\n                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */\n  create_note_and_tls_segments(this,layout,&sections);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  pGVar4 = parameters->options_;\n  if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  local_98 = *(int *)((int)&(pGVar4->max_page_size_).value + 4);\n  local_9c = (int)(pGVar4->max_page_size_).value;\n  if (local_98 == 0 && local_9c == 0) {\n    iVar17 = *(int *)(parameters->target_ + 4);\n    local_98 = *(int *)(iVar17 + 0x24);\n    local_9c = *(int *)(iVar17 + 0x20);\n  }\n  local_94 = (Output_segment *)0x0;\n  ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish;\n  if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_start ==\n      sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_finish) {\nLAB_0010d48b:\n    if (ppOVar15 == (pointer)0x0)" (parenthesized_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )ppOVar15,\n             (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last,__comp);\n  __buffer = (Output_section **)0x0;\nLAB_0010ce6f:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);\n                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */\n  create_note_and_tls_segments(this,layout,&sections);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  pGVar4 = parameters->options_;\n  if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  local_98 = *(int *)((int)&(pGVar4->max_page_size_).value + 4);\n  local_9c = (int)(pGVar4->max_page_size_).value;\n  if (local_98 == 0 && local_9c == 0) {\n    iVar17 = *(int *)(parameters->target_ + 4);\n    local_98 = *(int *)(iVar17 + 0x24);\n    local_9c = *(int *)(iVar17 + 0x20);\n  }\n  local_94 = (Output_segment *)0x0;\n  ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish;\n  if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_start ==\n      sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_finish)" ( (ERROR "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )ppOVar15,\n             (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last,__comp);\n  __buffer = (Output_section **)0x0;\nLAB_0010ce6f:\n  operator_delete(__buffer,(nothrow_t *)&std::nothrow);" (comma_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )ppOVar15,\n             (__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last,__comp)" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )ppOVar15" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > (ERROR ")" )) identifier) , (parenthesized_expression "(__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last,__comp)" ( (comma_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last,__comp" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_>\n              )__last" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std::allocator<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold::Output_section*,_std" (binary_expression "__normal_iterator<gold::Output_section**,_std::vector<gold" (binary_expression "__normal_iterator<gold::Output_section**,_std" (binary_expression "__normal_iterator<gold" identifier < identifier) (ERROR "::Output_section" : : identifier) * (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::vector" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) > (ERROR ")" )) identifier) , identifier) ))) ; (assignment_expression "__buffer = (Output_section **)0x0" identifier = (cast_expression "(Output_section **)0x0" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ; identifier : (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) ))) ;) comment (ERROR "create_note_and_tls_segments(this,layout,&sections);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  pGVar4 = parameters->options_;\n  if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  local_98 = *(int *)((int)&(pGVar4->max_page_size_).value + 4);\n  local_9c = (int)(pGVar4->max_page_size_).value;\n  if (local_98 == 0 && local_9c == 0) {\n    iVar17 = *(int *)(parameters->target_ + 4);\n    local_98 = *(int *)(iVar17 + 0x24);\n    local_9c = *(int *)(iVar17 + 0x20);\n  }\n  local_94 = (Output_segment *)0x0;\n  ppOVar15 = sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_finish;\n  if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n      _M_impl._M_start ==\n      sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::" (call_expression "create_note_and_tls_segments(this,layout,&sections);\n  if (parameters->target_ == (Target *)0x0)" (call_expression "create_note_and_tls_segments(this,layout,&sections)" identifier (argument_list "(this,layout,&sections)" ( identifier , identifier , (pointer_expression "&sections" & identifier) ))) (ERROR ";\n  if" ; if) (argument_list "(parameters->target_ == (Target *)0x0)" ( (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) }) (call_expression "pGVar4 = parameters->options_;\n  if (pGVar4 == (General_options *)0x0)" (assignment_expression "pGVar4 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) (ERROR ";\n  if" ; if) (argument_list "(pGVar4 == (General_options *)0x0)" ( (binary_expression "pGVar4 == (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                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { comment 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 ") ))) ;) }) (assignment_expression "local_98 = *(int *)((int)&(pGVar4->max_page_size_).value + 4)" identifier = (pointer_expression "*(int *)((int)&(pGVar4->max_page_size_).value + 4)" * (cast_expression "(int *)((int)&(pGVar4->max_page_size_).value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pGVar4->max_page_size_).value + 4)" ( (binary_expression "(int)&(pGVar4->max_page_size_).value + 4" (cast_expression "(int)&(pGVar4->max_page_size_).value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pGVar4->max_page_size_).value" & (field_expression "(pGVar4->max_page_size_).value" (parenthesized_expression "(pGVar4->max_page_size_)" ( (field_expression "pGVar4->max_page_size_" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ; (call_expression "local_9c = (int)(pGVar4->max_page_size_).value;\n  if (local_98 == 0 && local_9c == 0)" (assignment_expression "local_9c = (int)(pGVar4->max_page_size_).value" identifier = (cast_expression "(int)(pGVar4->max_page_size_).value" ( (type_descriptor "int" primitive_type) ) (field_expression "(pGVar4->max_page_size_).value" (parenthesized_expression "(pGVar4->max_page_size_)" ( (field_expression "pGVar4->max_page_size_" identifier -> field_identifier) )) . field_identifier))) (ERROR ";\n  if" ; if) (argument_list "(local_98 == 0 && local_9c == 0)" ( (binary_expression "local_98 == 0 && local_9c == 0" (binary_expression "local_98 == 0" identifier == number_literal) && (binary_expression "local_9c == 0" identifier == number_literal)) ))) (compound_statement "{\n    iVar17 = *(int *)(parameters->target_ + 4);\n    local_98 = *(int *)(iVar17 + 0x24);\n    local_9c = *(int *)(iVar17 + 0x20);\n  }" { (expression_statement "iVar17 = *(int *)(parameters->target_ + 4);" (assignment_expression "iVar17 = *(int *)(parameters->target_ + 4)" identifier = (pointer_expression "*(int *)(parameters->target_ + 4)" * (cast_expression "(int *)(parameters->target_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(parameters->target_ + 4)" ( (binary_expression "parameters->target_ + 4" (field_expression "parameters->target_" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "local_98 = *(int *)(iVar17 + 0x24);" (assignment_expression "local_98 = *(int *)(iVar17 + 0x24)" identifier = (pointer_expression "*(int *)(iVar17 + 0x24)" * (cast_expression "(int *)(iVar17 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x24)" ( (binary_expression "iVar17 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "local_9c = *(int *)(iVar17 + 0x20);" (assignment_expression "local_9c = *(int *)(iVar17 + 0x20)" identifier = (pointer_expression "*(int *)(iVar17 + 0x20)" * (cast_expression "(int *)(iVar17 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x20)" ( (binary_expression "iVar17 + 0x20" identifier + number_literal) ))))) ;) }) (assignment_expression "local_94 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "ppOVar15 = sections.\n             super__Vector_base<gold" identifier = (binary_expression "sections.\n             super__Vector_base<gold" (field_expression "sections.\n             super__Vector_base" identifier . field_identifier) < identifier)) : : (type_descriptor "Output_section*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "allocator<gold" identifier < identifier) : : (comma_expression "Output_section*>_>.\n             _M_impl._M_finish;\n  if (sections.super__Vector_base<gold::Output_section*,_std" (field_expression "Output_section*>_>.\n             _M_impl._M_finish" (field_expression "Output_section*>_>.\n             _M_impl" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) (ERROR ";\n  if (sections.super__Vector_base<gold::Output_section*" ; if ( (binary_expression "sections.super__Vector_base<gold" (field_expression "sections.super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) *) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Output_section*>_>.\n      _M_impl._M_start ==\n      sections.super__Vector_base<gold" (field_expression "Output_section*>_>.\n      _M_impl._M_start" (field_expression "Output_section*>_>.\n      _M_impl" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) == (binary_expression "sections.super__Vector_base<gold" (field_expression "sections.super__Vector_base" identifier . field_identifier) < identifier)) : : (type_descriptor "Output_section*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "allocator<gold" identifier < identifier) : :) (field_expression "Output_section*>_>.\n      _M_impl._M_finish" (field_expression "Output_section*>_>.\n      _M_impl" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (ERROR "{\nLAB_0010d48b:\n    if" { identifier : if) (argument_list "(ppOVar15 == (pointer)0x0)" ( (binary_expression "ppOVar15 == (pointer)0x0" identifier == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ))) (ERROR "{\n      return local_94;\n    }\n    operator_delete(ppOVar15" { return identifier ; } identifier ( identifier) ))) ;)) (return_statement "return local_94;" return identifier ;) }) (expression_statement "pOVar12 = *sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_start;" (field_expression "pOVar12 = *sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl._M_start" (field_expression "pOVar12 = *sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n             _M_impl" (binary_expression "pOVar12 = *sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "pOVar12 = *sections.\n             super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "pOVar12 = *sections.\n             super__Vector_base<gold::Output_section*,_std" (assignment_expression "pOVar12 = *sections.\n             super__Vector_base<gold" identifier = (binary_expression "*sections.\n             super__Vector_base<gold" (pointer_expression "*sections.\n             super__Vector_base" * (field_expression "sections.\n             super__Vector_base" identifier . field_identifier)) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "bVar3 = (pOVar12->super_Output_data).field_0x1c;" (assignment_expression "bVar3 = (pOVar12->super_Output_data).field_0x1c" identifier = (field_expression "(pOVar12->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar12->super_Output_data)" ( (field_expression "pOVar12->super_Output_data" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bVar3 & 1) != 0) {\n    local_7d = 0;\n    local_50 = (Output_segment *)0x0;\n    local_34 = bVar3 & 1;\n    local_4c = 0;\n    uVar18 = local_9c - 1;\n    local_48 = 0;\n    iVar17 = local_98 + -1 + (uint)(local_9c != 0);\n    local_90 = (Output_segment *)0x0;\n    local_6c = 0;\n    uVar16 = -(local_98 + (uint)(local_9c != 0));\n    local_68 = 0;\n    local_7c = 0;\n    local_78 = 0;\n    ppOVar15 = sections.\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start;\n    do {\n      puVar2 = &(pOVar12->super_Output_data).address_;\n      uVar5 = (uint)*puVar2;\n      iVar6 = *(int *)((int)&(pOVar12->super_Output_data).address_ + 4);\n      local_44 = *puVar2;\n      p_Var7 = (pOVar12->super_Output_data)._vptr_Output_data[4];\n      if (p_Var7 == Output_section::do_has_load_address) {\n        bVar9 = (byte)pOVar12->field_0x90 >> 7;\n      }\n      else {\n        iVar14 = (*p_Var7)(pOVar12);\n        bVar9 = (byte)iVar14;\n      }\n      local_54 = *ppOVar15;\n      if (bVar9 != 0) {\n        p_Var7 = (local_54->super_Output_data)._vptr_Output_data[5];\n        if (p_Var7 == Output_section::do_load_address) {\n          if (-1 < (char)local_54->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n          }\n          local_44 = local_54->load_address_;\n        }\n        else {\n          iVar14 = (*p_Var7)(local_54);\n          local_54 = *ppOVar15;\n          local_44 = CONCAT44(extraout_EDX,iVar14);\n        }\n      }\n      uVar8 = (uint)(local_54->super_Output_data).data_size_;\n      iVar14 = *(int *)((int)&(local_54->super_Output_data).data_size_ + 4);\n      pEVar1 = &local_54->flags_;\n      if ((local_50 == (Output_segment *)0x0) ||\n         ((local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5) !=\n          (local_68 - local_78) - (uint)(local_6c < local_7c) ||\n          (uint)local_44 - uVar5 != local_6c - local_7c)) {\nLAB_0010d018:\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\nLAB_0010d029:\n        local_50 = Layout::make_output_segment(layout,1,local_4c);\n        *(uint *)&local_50->vaddr_ = uVar5;\n        *(int *)((int)&local_50->vaddr_ + 4) = iVar6;\n        *(uint *)&local_50->paddr_ = (uint)local_44;\n        uVar13 = *(uint *)((int)&local_50->min_p_align_ + 4);\n        *(uint *)((int)&local_50->paddr_ + 4) = local_44._4_4_;\n        local_50->field_0x19c = local_50->field_0x19c | 2;\n        if (uVar13 < dot_alignment._4_4_ ||\n            uVar13 - dot_alignment._4_4_ <\n            (uint)((uint)local_50->min_p_align_ < (uint)dot_alignment)) {\n          local_50->min_p_align_ = dot_alignment;\n        }\n        local_7d = 0;\n        local_34 = bVar3 & 1;\n        if (local_90 == (Output_segment *)0x0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        bVar10 = CARRY4(local_6c,local_4c);\n        local_4c = local_6c + local_4c;\n        local_48 = local_68 + local_48 + (uint)bVar10;\n        uVar13 = local_44._4_4_;\n        uVar19 = (uint)local_44;\n        if (local_98 != 0 || local_9c != 0) {\n          local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16;\n          local_4c = -local_9c & local_4c + uVar18;\n          uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16;\n          uVar19 = -local_9c & (uint)local_44 + uVar18;\n        }\n        if (local_48 < uVar13 || local_48 - uVar13 < (uint)(local_4c < uVar19)) goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54->type_ != 8) goto LAB_0010d018;\n          if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = Layout::section_flags_to_segment(*pEVar1);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((*pEVar1 & 1) != 0)) {\n          if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          local_34 = (parameters->options_->omagic_).value;\n          if ((bool)local_34 == false) goto LAB_0010d018;\n        }\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\n      }\n      Output_segment::add_output_section_to_load(local_50,layout,*ppOVar15,local_4c);\n      uVar13 = (uint)(*ppOVar15)->flags_;\n      if ((uVar13 & 1) != 0) {\n        local_34 = 0;\n      }\n      if (((*ppOVar15)->type_ == 8) &&\n         (bVar9 = ((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0), bVar9 != 0)) {\n        local_7d = bVar9;\n      }\n      ppOVar15 = ppOVar15 + 1;\n      if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n          ._M_impl._M_finish == ppOVar15) {\n        ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                   ._M_impl._M_start;\n        if (local_90 != (Output_segment *)0x0) {\n          pGVar4 = parameters->options_;\n          if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false)) {\n            sizeof_headers = total_header_size(this,layout);\n            uVar16 = (uint)local_90->vaddr_;\n            uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);\n            uVar5 = (uint)local_90->paddr_;\n            uVar8 = *(uint *)((int)&local_90->paddr_ + 4);\n            length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);\n            local_44._0_4_ = (uint)length;\n            local_44._4_4_ = (uint)(length >> 0x20);\n            ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start;\n            if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      pOVar12 = *ppOVar15;\n      local_6c = (uint)local_44;\n      local_68 = local_44._4_4_;\n      local_7c = uVar5;\n      local_78 = iVar6;\n      local_4c = uVar8;\n      local_48 = iVar14;\n    } while (((pOVar12->super_Output_data).field_0x1c & 1) != 0);\n  }" if (parenthesized_expression "((bVar3 & 1) != 0)" ( (binary_expression "(bVar3 & 1) != 0" (parenthesized_expression "(bVar3 & 1)" ( (binary_expression "bVar3 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    local_7d = 0;\n    local_50 = (Output_segment *)0x0;\n    local_34 = bVar3 & 1;\n    local_4c = 0;\n    uVar18 = local_9c - 1;\n    local_48 = 0;\n    iVar17 = local_98 + -1 + (uint)(local_9c != 0);\n    local_90 = (Output_segment *)0x0;\n    local_6c = 0;\n    uVar16 = -(local_98 + (uint)(local_9c != 0));\n    local_68 = 0;\n    local_7c = 0;\n    local_78 = 0;\n    ppOVar15 = sections.\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start;\n    do {\n      puVar2 = &(pOVar12->super_Output_data).address_;\n      uVar5 = (uint)*puVar2;\n      iVar6 = *(int *)((int)&(pOVar12->super_Output_data).address_ + 4);\n      local_44 = *puVar2;\n      p_Var7 = (pOVar12->super_Output_data)._vptr_Output_data[4];\n      if (p_Var7 == Output_section::do_has_load_address) {\n        bVar9 = (byte)pOVar12->field_0x90 >> 7;\n      }\n      else {\n        iVar14 = (*p_Var7)(pOVar12);\n        bVar9 = (byte)iVar14;\n      }\n      local_54 = *ppOVar15;\n      if (bVar9 != 0) {\n        p_Var7 = (local_54->super_Output_data)._vptr_Output_data[5];\n        if (p_Var7 == Output_section::do_load_address) {\n          if (-1 < (char)local_54->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n          }\n          local_44 = local_54->load_address_;\n        }\n        else {\n          iVar14 = (*p_Var7)(local_54);\n          local_54 = *ppOVar15;\n          local_44 = CONCAT44(extraout_EDX,iVar14);\n        }\n      }\n      uVar8 = (uint)(local_54->super_Output_data).data_size_;\n      iVar14 = *(int *)((int)&(local_54->super_Output_data).data_size_ + 4);\n      pEVar1 = &local_54->flags_;\n      if ((local_50 == (Output_segment *)0x0) ||\n         ((local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5) !=\n          (local_68 - local_78) - (uint)(local_6c < local_7c) ||\n          (uint)local_44 - uVar5 != local_6c - local_7c)) {\nLAB_0010d018:\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\nLAB_0010d029:\n        local_50 = Layout::make_output_segment(layout,1,local_4c);\n        *(uint *)&local_50->vaddr_ = uVar5;\n        *(int *)((int)&local_50->vaddr_ + 4) = iVar6;\n        *(uint *)&local_50->paddr_ = (uint)local_44;\n        uVar13 = *(uint *)((int)&local_50->min_p_align_ + 4);\n        *(uint *)((int)&local_50->paddr_ + 4) = local_44._4_4_;\n        local_50->field_0x19c = local_50->field_0x19c | 2;\n        if (uVar13 < dot_alignment._4_4_ ||\n            uVar13 - dot_alignment._4_4_ <\n            (uint)((uint)local_50->min_p_align_ < (uint)dot_alignment)) {\n          local_50->min_p_align_ = dot_alignment;\n        }\n        local_7d = 0;\n        local_34 = bVar3 & 1;\n        if (local_90 == (Output_segment *)0x0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        bVar10 = CARRY4(local_6c,local_4c);\n        local_4c = local_6c + local_4c;\n        local_48 = local_68 + local_48 + (uint)bVar10;\n        uVar13 = local_44._4_4_;\n        uVar19 = (uint)local_44;\n        if (local_98 != 0 || local_9c != 0) {\n          local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16;\n          local_4c = -local_9c & local_4c + uVar18;\n          uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16;\n          uVar19 = -local_9c & (uint)local_44 + uVar18;\n        }\n        if (local_48 < uVar13 || local_48 - uVar13 < (uint)(local_4c < uVar19)) goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54->type_ != 8) goto LAB_0010d018;\n          if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = Layout::section_flags_to_segment(*pEVar1);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((*pEVar1 & 1) != 0)) {\n          if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          local_34 = (parameters->options_->omagic_).value;\n          if ((bool)local_34 == false) goto LAB_0010d018;\n        }\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\n      }\n      Output_segment::add_output_section_to_load(local_50,layout,*ppOVar15,local_4c);\n      uVar13 = (uint)(*ppOVar15)->flags_;\n      if ((uVar13 & 1) != 0) {\n        local_34 = 0;\n      }\n      if (((*ppOVar15)->type_ == 8) &&\n         (bVar9 = ((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0), bVar9 != 0)) {\n        local_7d = bVar9;\n      }\n      ppOVar15 = ppOVar15 + 1;\n      if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n          ._M_impl._M_finish == ppOVar15) {\n        ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                   ._M_impl._M_start;\n        if (local_90 != (Output_segment *)0x0) {\n          pGVar4 = parameters->options_;\n          if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false)) {\n            sizeof_headers = total_header_size(this,layout);\n            uVar16 = (uint)local_90->vaddr_;\n            uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);\n            uVar5 = (uint)local_90->paddr_;\n            uVar8 = *(uint *)((int)&local_90->paddr_ + 4);\n            length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);\n            local_44._0_4_ = (uint)length;\n            local_44._4_4_ = (uint)(length >> 0x20);\n            ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start;\n            if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      pOVar12 = *ppOVar15;\n      local_6c = (uint)local_44;\n      local_68 = local_44._4_4_;\n      local_7c = uVar5;\n      local_78 = iVar6;\n      local_4c = uVar8;\n      local_48 = iVar14;\n    } while (((pOVar12->super_Output_data).field_0x1c & 1) != 0);\n  }" { (expression_statement "local_7d = 0;" (assignment_expression "local_7d = 0" identifier = number_literal) ;) (expression_statement "local_50 = (Output_segment *)0x0;" (assignment_expression "local_50 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = bVar3 & 1;" (assignment_expression "local_34 = bVar3 & 1" identifier = (binary_expression "bVar3 & 1" identifier & number_literal)) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar18 = local_9c - 1;" (assignment_expression "uVar18 = local_9c - 1" identifier = (binary_expression "local_9c - 1" identifier - number_literal)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = local_98 + -1 + (uint)(local_9c != 0);" (assignment_expression "iVar17 = local_98 + -1 + (uint)(local_9c != 0)" identifier = (binary_expression "local_98 + -1 + (uint)(local_9c != 0)" (binary_expression "local_98 + -1" identifier + number_literal) + (call_expression "(uint)(local_9c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c != 0)" ( (binary_expression "local_9c != 0" identifier != number_literal) ))))) ;) (expression_statement "local_90 = (Output_segment *)0x0;" (assignment_expression "local_90 = (Output_segment *)0x0" identifier = (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_6c = 0;" (assignment_expression "local_6c = 0" identifier = number_literal) ;) (expression_statement "uVar16 = -(local_98 + (uint)(local_9c != 0));" (assignment_expression "uVar16 = -(local_98 + (uint)(local_9c != 0))" identifier = (unary_expression "-(local_98 + (uint)(local_9c != 0))" - (parenthesized_expression "(local_98 + (uint)(local_9c != 0))" ( (binary_expression "local_98 + (uint)(local_9c != 0)" identifier + (call_expression "(uint)(local_9c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c != 0)" ( (binary_expression "local_9c != 0" identifier != number_literal) )))) )))) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "ppOVar15 = sections.\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start;" (field_expression "ppOVar15 = sections.\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start" (field_expression "ppOVar15 = sections.\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl" (binary_expression "ppOVar15 = sections.\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar15 = sections.\n               super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar15 = sections.\n               super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar15 = sections.\n               super__Vector_base<gold" identifier = (binary_expression "sections.\n               super__Vector_base<gold" (field_expression "sections.\n               super__Vector_base" identifier . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (do_statement "do {\n      puVar2 = &(pOVar12->super_Output_data).address_;\n      uVar5 = (uint)*puVar2;\n      iVar6 = *(int *)((int)&(pOVar12->super_Output_data).address_ + 4);\n      local_44 = *puVar2;\n      p_Var7 = (pOVar12->super_Output_data)._vptr_Output_data[4];\n      if (p_Var7 == Output_section::do_has_load_address) {\n        bVar9 = (byte)pOVar12->field_0x90 >> 7;\n      }\n      else {\n        iVar14 = (*p_Var7)(pOVar12);\n        bVar9 = (byte)iVar14;\n      }\n      local_54 = *ppOVar15;\n      if (bVar9 != 0) {\n        p_Var7 = (local_54->super_Output_data)._vptr_Output_data[5];\n        if (p_Var7 == Output_section::do_load_address) {\n          if (-1 < (char)local_54->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n          }\n          local_44 = local_54->load_address_;\n        }\n        else {\n          iVar14 = (*p_Var7)(local_54);\n          local_54 = *ppOVar15;\n          local_44 = CONCAT44(extraout_EDX,iVar14);\n        }\n      }\n      uVar8 = (uint)(local_54->super_Output_data).data_size_;\n      iVar14 = *(int *)((int)&(local_54->super_Output_data).data_size_ + 4);\n      pEVar1 = &local_54->flags_;\n      if ((local_50 == (Output_segment *)0x0) ||\n         ((local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5) !=\n          (local_68 - local_78) - (uint)(local_6c < local_7c) ||\n          (uint)local_44 - uVar5 != local_6c - local_7c)) {\nLAB_0010d018:\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\nLAB_0010d029:\n        local_50 = Layout::make_output_segment(layout,1,local_4c);\n        *(uint *)&local_50->vaddr_ = uVar5;\n        *(int *)((int)&local_50->vaddr_ + 4) = iVar6;\n        *(uint *)&local_50->paddr_ = (uint)local_44;\n        uVar13 = *(uint *)((int)&local_50->min_p_align_ + 4);\n        *(uint *)((int)&local_50->paddr_ + 4) = local_44._4_4_;\n        local_50->field_0x19c = local_50->field_0x19c | 2;\n        if (uVar13 < dot_alignment._4_4_ ||\n            uVar13 - dot_alignment._4_4_ <\n            (uint)((uint)local_50->min_p_align_ < (uint)dot_alignment)) {\n          local_50->min_p_align_ = dot_alignment;\n        }\n        local_7d = 0;\n        local_34 = bVar3 & 1;\n        if (local_90 == (Output_segment *)0x0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        bVar10 = CARRY4(local_6c,local_4c);\n        local_4c = local_6c + local_4c;\n        local_48 = local_68 + local_48 + (uint)bVar10;\n        uVar13 = local_44._4_4_;\n        uVar19 = (uint)local_44;\n        if (local_98 != 0 || local_9c != 0) {\n          local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16;\n          local_4c = -local_9c & local_4c + uVar18;\n          uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16;\n          uVar19 = -local_9c & (uint)local_44 + uVar18;\n        }\n        if (local_48 < uVar13 || local_48 - uVar13 < (uint)(local_4c < uVar19)) goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54->type_ != 8) goto LAB_0010d018;\n          if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = Layout::section_flags_to_segment(*pEVar1);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((*pEVar1 & 1) != 0)) {\n          if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          local_34 = (parameters->options_->omagic_).value;\n          if ((bool)local_34 == false) goto LAB_0010d018;\n        }\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\n      }\n      Output_segment::add_output_section_to_load(local_50,layout,*ppOVar15,local_4c);\n      uVar13 = (uint)(*ppOVar15)->flags_;\n      if ((uVar13 & 1) != 0) {\n        local_34 = 0;\n      }\n      if (((*ppOVar15)->type_ == 8) &&\n         (bVar9 = ((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0), bVar9 != 0)) {\n        local_7d = bVar9;\n      }\n      ppOVar15 = ppOVar15 + 1;\n      if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n          ._M_impl._M_finish == ppOVar15) {\n        ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                   ._M_impl._M_start;\n        if (local_90 != (Output_segment *)0x0) {\n          pGVar4 = parameters->options_;\n          if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false)) {\n            sizeof_headers = total_header_size(this,layout);\n            uVar16 = (uint)local_90->vaddr_;\n            uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);\n            uVar5 = (uint)local_90->paddr_;\n            uVar8 = *(uint *)((int)&local_90->paddr_ + 4);\n            length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);\n            local_44._0_4_ = (uint)length;\n            local_44._4_4_ = (uint)(length >> 0x20);\n            ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start;\n            if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      pOVar12 = *ppOVar15;\n      local_6c = (uint)local_44;\n      local_68 = local_44._4_4_;\n      local_7c = uVar5;\n      local_78 = iVar6;\n      local_4c = uVar8;\n      local_48 = iVar14;\n    } while (((pOVar12->super_Output_data).field_0x1c & 1) != 0);" do (compound_statement "{\n      puVar2 = &(pOVar12->super_Output_data).address_;\n      uVar5 = (uint)*puVar2;\n      iVar6 = *(int *)((int)&(pOVar12->super_Output_data).address_ + 4);\n      local_44 = *puVar2;\n      p_Var7 = (pOVar12->super_Output_data)._vptr_Output_data[4];\n      if (p_Var7 == Output_section::do_has_load_address) {\n        bVar9 = (byte)pOVar12->field_0x90 >> 7;\n      }\n      else {\n        iVar14 = (*p_Var7)(pOVar12);\n        bVar9 = (byte)iVar14;\n      }\n      local_54 = *ppOVar15;\n      if (bVar9 != 0) {\n        p_Var7 = (local_54->super_Output_data)._vptr_Output_data[5];\n        if (p_Var7 == Output_section::do_load_address) {\n          if (-1 < (char)local_54->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n          }\n          local_44 = local_54->load_address_;\n        }\n        else {\n          iVar14 = (*p_Var7)(local_54);\n          local_54 = *ppOVar15;\n          local_44 = CONCAT44(extraout_EDX,iVar14);\n        }\n      }\n      uVar8 = (uint)(local_54->super_Output_data).data_size_;\n      iVar14 = *(int *)((int)&(local_54->super_Output_data).data_size_ + 4);\n      pEVar1 = &local_54->flags_;\n      if ((local_50 == (Output_segment *)0x0) ||\n         ((local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5) !=\n          (local_68 - local_78) - (uint)(local_6c < local_7c) ||\n          (uint)local_44 - uVar5 != local_6c - local_7c)) {\nLAB_0010d018:\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\nLAB_0010d029:\n        local_50 = Layout::make_output_segment(layout,1,local_4c);\n        *(uint *)&local_50->vaddr_ = uVar5;\n        *(int *)((int)&local_50->vaddr_ + 4) = iVar6;\n        *(uint *)&local_50->paddr_ = (uint)local_44;\n        uVar13 = *(uint *)((int)&local_50->min_p_align_ + 4);\n        *(uint *)((int)&local_50->paddr_ + 4) = local_44._4_4_;\n        local_50->field_0x19c = local_50->field_0x19c | 2;\n        if (uVar13 < dot_alignment._4_4_ ||\n            uVar13 - dot_alignment._4_4_ <\n            (uint)((uint)local_50->min_p_align_ < (uint)dot_alignment)) {\n          local_50->min_p_align_ = dot_alignment;\n        }\n        local_7d = 0;\n        local_34 = bVar3 & 1;\n        if (local_90 == (Output_segment *)0x0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        bVar10 = CARRY4(local_6c,local_4c);\n        local_4c = local_6c + local_4c;\n        local_48 = local_68 + local_48 + (uint)bVar10;\n        uVar13 = local_44._4_4_;\n        uVar19 = (uint)local_44;\n        if (local_98 != 0 || local_9c != 0) {\n          local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16;\n          local_4c = -local_9c & local_4c + uVar18;\n          uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16;\n          uVar19 = -local_9c & (uint)local_44 + uVar18;\n        }\n        if (local_48 < uVar13 || local_48 - uVar13 < (uint)(local_4c < uVar19)) goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54->type_ != 8) goto LAB_0010d018;\n          if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = Layout::section_flags_to_segment(*pEVar1);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((*pEVar1 & 1) != 0)) {\n          if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          local_34 = (parameters->options_->omagic_).value;\n          if ((bool)local_34 == false) goto LAB_0010d018;\n        }\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\n      }\n      Output_segment::add_output_section_to_load(local_50,layout,*ppOVar15,local_4c);\n      uVar13 = (uint)(*ppOVar15)->flags_;\n      if ((uVar13 & 1) != 0) {\n        local_34 = 0;\n      }\n      if (((*ppOVar15)->type_ == 8) &&\n         (bVar9 = ((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0), bVar9 != 0)) {\n        local_7d = bVar9;\n      }\n      ppOVar15 = ppOVar15 + 1;\n      if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n          ._M_impl._M_finish == ppOVar15) {\n        ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                   ._M_impl._M_start;\n        if (local_90 != (Output_segment *)0x0) {\n          pGVar4 = parameters->options_;\n          if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false)) {\n            sizeof_headers = total_header_size(this,layout);\n            uVar16 = (uint)local_90->vaddr_;\n            uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);\n            uVar5 = (uint)local_90->paddr_;\n            uVar8 = *(uint *)((int)&local_90->paddr_ + 4);\n            length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);\n            local_44._0_4_ = (uint)length;\n            local_44._4_4_ = (uint)(length >> 0x20);\n            ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start;\n            if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      pOVar12 = *ppOVar15;\n      local_6c = (uint)local_44;\n      local_68 = local_44._4_4_;\n      local_7c = uVar5;\n      local_78 = iVar6;\n      local_4c = uVar8;\n      local_48 = iVar14;\n    }" { (expression_statement "puVar2 = &(pOVar12->super_Output_data).address_;" (assignment_expression "puVar2 = &(pOVar12->super_Output_data).address_" identifier = (pointer_expression "&(pOVar12->super_Output_data).address_" & (field_expression "(pOVar12->super_Output_data).address_" (parenthesized_expression "(pOVar12->super_Output_data)" ( (field_expression "pOVar12->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "uVar5 = (uint)*puVar2;" (assignment_expression "uVar5 = (uint)*puVar2" identifier = (binary_expression "(uint)*puVar2" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar6 = *(int *)((int)&(pOVar12->super_Output_data).address_ + 4);" (assignment_expression "iVar6 = *(int *)((int)&(pOVar12->super_Output_data).address_ + 4)" identifier = (pointer_expression "*(int *)((int)&(pOVar12->super_Output_data).address_ + 4)" * (cast_expression "(int *)((int)&(pOVar12->super_Output_data).address_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pOVar12->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(pOVar12->super_Output_data).address_ + 4" (cast_expression "(int)&(pOVar12->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar12->super_Output_data).address_" & (field_expression "(pOVar12->super_Output_data).address_" (parenthesized_expression "(pOVar12->super_Output_data)" ( (field_expression "pOVar12->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "local_44 = *puVar2;" (assignment_expression "local_44 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "p_Var7 = (pOVar12->super_Output_data)._vptr_Output_data[4];" (assignment_expression "p_Var7 = (pOVar12->super_Output_data)._vptr_Output_data[4]" identifier = (subscript_expression "(pOVar12->super_Output_data)._vptr_Output_data[4]" (field_expression "(pOVar12->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar12->super_Output_data)" ( (field_expression "pOVar12->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var7 == Output_section::do_has_load_address) {\n        bVar9 = (byte)pOVar12->field_0x90 >> 7;\n      }\n      else {\n        iVar14 = (*p_Var7)(pOVar12);\n        bVar9 = (byte)iVar14;\n      }" if (parenthesized_expression "(p_Var7 == Output_section::do_has_load_address)" ( (binary_expression "p_Var7 == Output_section" identifier == identifier) (ERROR "::do_has_load_address" : : identifier) )) (compound_statement "{\n        bVar9 = (byte)pOVar12->field_0x90 >> 7;\n      }" { (expression_statement "bVar9 = (byte)pOVar12->field_0x90 >> 7;" (assignment_expression "bVar9 = (byte)pOVar12->field_0x90 >> 7" identifier = (binary_expression "(byte)pOVar12->field_0x90 >> 7" (cast_expression "(byte)pOVar12->field_0x90" ( (type_descriptor "byte" type_identifier) ) (field_expression "pOVar12->field_0x90" identifier -> field_identifier)) >> number_literal)) ;) }) (else_clause "else {\n        iVar14 = (*p_Var7)(pOVar12);\n        bVar9 = (byte)iVar14;\n      }" else (compound_statement "{\n        iVar14 = (*p_Var7)(pOVar12);\n        bVar9 = (byte)iVar14;\n      }" { (expression_statement "iVar14 = (*p_Var7)(pOVar12);" (assignment_expression "iVar14 = (*p_Var7)(pOVar12)" identifier = (call_expression "(*p_Var7)(pOVar12)" (parenthesized_expression "(*p_Var7)" ( (pointer_expression "*p_Var7" * identifier) )) (argument_list "(pOVar12)" ( identifier )))) ;) (expression_statement "bVar9 = (byte)iVar14;" (assignment_expression "bVar9 = (byte)iVar14" identifier = (cast_expression "(byte)iVar14" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "local_54 = *ppOVar15;" (assignment_expression "local_54 = *ppOVar15" identifier = (pointer_expression "*ppOVar15" * identifier)) ;) (if_statement "if (bVar9 != 0) {\n        p_Var7 = (local_54->super_Output_data)._vptr_Output_data[5];\n        if (p_Var7 == Output_section::do_load_address) {\n          if (-1 < (char)local_54->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n          }\n          local_44 = local_54->load_address_;\n        }\n        else {\n          iVar14 = (*p_Var7)(local_54);\n          local_54 = *ppOVar15;\n          local_44 = CONCAT44(extraout_EDX,iVar14);\n        }\n      }" if (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        p_Var7 = (local_54->super_Output_data)._vptr_Output_data[5];\n        if (p_Var7 == Output_section::do_load_address) {\n          if (-1 < (char)local_54->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n          }\n          local_44 = local_54->load_address_;\n        }\n        else {\n          iVar14 = (*p_Var7)(local_54);\n          local_54 = *ppOVar15;\n          local_44 = CONCAT44(extraout_EDX,iVar14);\n        }\n      }" { (expression_statement "p_Var7 = (local_54->super_Output_data)._vptr_Output_data[5];" (assignment_expression "p_Var7 = (local_54->super_Output_data)._vptr_Output_data[5]" identifier = (subscript_expression "(local_54->super_Output_data)._vptr_Output_data[5]" (field_expression "(local_54->super_Output_data)._vptr_Output_data" (parenthesized_expression "(local_54->super_Output_data)" ( (field_expression "local_54->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var7 == Output_section::do_load_address) {\n          if (-1 < (char)local_54->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n          }\n          local_44 = local_54->load_address_;\n        }\n        else {\n          iVar14 = (*p_Var7)(local_54);\n          local_54 = *ppOVar15;\n          local_44 = CONCAT44(extraout_EDX,iVar14);\n        }" if (parenthesized_expression "(p_Var7 == Output_section::do_load_address)" ( (binary_expression "p_Var7 == Output_section" identifier == identifier) (ERROR "::do_load_address" : : identifier) )) (compound_statement "{\n          if (-1 < (char)local_54->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n          }\n          local_44 = local_54->load_address_;\n        }" { (if_statement "if (-1 < (char)local_54->field_0x90) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n          }" if (parenthesized_expression "(-1 < (char)local_54->field_0x90)" ( (binary_expression "-1 < (char)local_54->field_0x90" number_literal < (cast_expression "(char)local_54->field_0x90" ( (type_descriptor "char" primitive_type) ) (field_expression "local_54->field_0x90" identifier -> field_identifier))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");\n          }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address");" (call_expression "do_gold_unreachable("../../gold/output.h",0x107b,"do_load_address")" identifier (argument_list "("../../gold/output.h",0x107b,"do_load_address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_load_address"" " string_content ") ))) ;) })) (expression_statement "local_44 = local_54->load_address_;" (assignment_expression "local_44 = local_54->load_address_" identifier = (field_expression "local_54->load_address_" identifier -> field_identifier)) ;) }) (else_clause "else {\n          iVar14 = (*p_Var7)(local_54);\n          local_54 = *ppOVar15;\n          local_44 = CONCAT44(extraout_EDX,iVar14);\n        }" else (compound_statement "{\n          iVar14 = (*p_Var7)(local_54);\n          local_54 = *ppOVar15;\n          local_44 = CONCAT44(extraout_EDX,iVar14);\n        }" { (expression_statement "iVar14 = (*p_Var7)(local_54);" (assignment_expression "iVar14 = (*p_Var7)(local_54)" identifier = (call_expression "(*p_Var7)(local_54)" (parenthesized_expression "(*p_Var7)" ( (pointer_expression "*p_Var7" * identifier) )) (argument_list "(local_54)" ( identifier )))) ;) (expression_statement "local_54 = *ppOVar15;" (assignment_expression "local_54 = *ppOVar15" identifier = (pointer_expression "*ppOVar15" * identifier)) ;) (expression_statement "local_44 = CONCAT44(extraout_EDX,iVar14);" (assignment_expression "local_44 = CONCAT44(extraout_EDX,iVar14)" identifier = (call_expression "CONCAT44(extraout_EDX,iVar14)" identifier (argument_list "(extraout_EDX,iVar14)" ( identifier , identifier )))) ;) }))) })) (expression_statement "uVar8 = (uint)(local_54->super_Output_data).data_size_;" (assignment_expression "uVar8 = (uint)(local_54->super_Output_data).data_size_" identifier = (field_expression "(uint)(local_54->super_Output_data).data_size_" (call_expression "(uint)(local_54->super_Output_data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54->super_Output_data)" ( (field_expression "local_54->super_Output_data" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "iVar14 = *(int *)((int)&(local_54->super_Output_data).data_size_ + 4);" (assignment_expression "iVar14 = *(int *)((int)&(local_54->super_Output_data).data_size_ + 4)" identifier = (pointer_expression "*(int *)((int)&(local_54->super_Output_data).data_size_ + 4)" * (cast_expression "(int *)((int)&(local_54->super_Output_data).data_size_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_54->super_Output_data).data_size_ + 4)" ( (binary_expression "(int)&(local_54->super_Output_data).data_size_ + 4" (cast_expression "(int)&(local_54->super_Output_data).data_size_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_54->super_Output_data).data_size_" & (field_expression "(local_54->super_Output_data).data_size_" (parenthesized_expression "(local_54->super_Output_data)" ( (field_expression "local_54->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pEVar1 = &local_54->flags_;" (assignment_expression "pEVar1 = &local_54->flags_" identifier = (pointer_expression "&local_54->flags_" & (field_expression "local_54->flags_" identifier -> field_identifier))) ;) (if_statement "if ((local_50 == (Output_segment *)0x0) ||\n         ((local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5) !=\n          (local_68 - local_78) - (uint)(local_6c < local_7c) ||\n          (uint)local_44 - uVar5 != local_6c - local_7c)) {\nLAB_0010d018:\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\nLAB_0010d029:\n        local_50 = Layout::make_output_segment(layout,1,local_4c);\n        *(uint *)&local_50->vaddr_ = uVar5;\n        *(int *)((int)&local_50->vaddr_ + 4) = iVar6;\n        *(uint *)&local_50->paddr_ = (uint)local_44;\n        uVar13 = *(uint *)((int)&local_50->min_p_align_ + 4);\n        *(uint *)((int)&local_50->paddr_ + 4) = local_44._4_4_;\n        local_50->field_0x19c = local_50->field_0x19c | 2;\n        if (uVar13 < dot_alignment._4_4_ ||\n            uVar13 - dot_alignment._4_4_ <\n            (uint)((uint)local_50->min_p_align_ < (uint)dot_alignment)) {\n          local_50->min_p_align_ = dot_alignment;\n        }\n        local_7d = 0;\n        local_34 = bVar3 & 1;\n        if (local_90 == (Output_segment *)0x0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        bVar10 = CARRY4(local_6c,local_4c);\n        local_4c = local_6c + local_4c;\n        local_48 = local_68 + local_48 + (uint)bVar10;\n        uVar13 = local_44._4_4_;\n        uVar19 = (uint)local_44;\n        if (local_98 != 0 || local_9c != 0) {\n          local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16;\n          local_4c = -local_9c & local_4c + uVar18;\n          uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16;\n          uVar19 = -local_9c & (uint)local_44 + uVar18;\n        }\n        if (local_48 < uVar13 || local_48 - uVar13 < (uint)(local_4c < uVar19)) goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54->type_ != 8) goto LAB_0010d018;\n          if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = Layout::section_flags_to_segment(*pEVar1);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((*pEVar1 & 1) != 0)) {\n          if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          local_34 = (parameters->options_->omagic_).value;\n          if ((bool)local_34 == false) goto LAB_0010d018;\n        }\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\n      }" if (parenthesized_expression "((local_50 == (Output_segment *)0x0) ||\n         ((local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5) !=\n          (local_68 - local_78) - (uint)(local_6c < local_7c) ||\n          (uint)local_44 - uVar5 != local_6c - local_7c))" ( (binary_expression "(local_50 == (Output_segment *)0x0) ||\n         ((local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5) !=\n          (local_68 - local_78) - (uint)(local_6c < local_7c) ||\n          (uint)local_44 - uVar5 != local_6c - local_7c)" (parenthesized_expression "(local_50 == (Output_segment *)0x0)" ( (binary_expression "local_50 == (Output_segment *)0x0" identifier == (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5) !=\n          (local_68 - local_78) - (uint)(local_6c < local_7c) ||\n          (uint)local_44 - uVar5 != local_6c - local_7c)" ( (binary_expression "(local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5) !=\n          (local_68 - local_78) - (uint)(local_6c < local_7c) ||\n          (uint)local_44 - uVar5 != local_6c - local_7c" (binary_expression "(local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5) !=\n          (local_68 - local_78) - (uint)(local_6c < local_7c)" (binary_expression "(local_44._4_4_ - iVar6) - (uint)((uint)local_44 < uVar5)" (parenthesized_expression "(local_44._4_4_ - iVar6)" ( (binary_expression "local_44._4_4_ - iVar6" (field_expression "local_44._4_4_" identifier . field_identifier) - identifier) )) - (call_expression "(uint)((uint)local_44 < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)local_44 < uVar5)" ( (binary_expression "(uint)local_44 < uVar5" (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) != (binary_expression "(local_68 - local_78) - (uint)(local_6c < local_7c)" (parenthesized_expression "(local_68 - local_78)" ( (binary_expression "local_68 - local_78" identifier - identifier) )) - (call_expression "(uint)(local_6c < local_7c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_6c < local_7c)" ( (binary_expression "local_6c < local_7c" identifier < identifier) ))))) || (binary_expression "(uint)local_44 - uVar5 != local_6c - local_7c" (binary_expression "(uint)local_44 - uVar5" (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) - identifier) != (binary_expression "local_6c - local_7c" identifier - identifier))) ))) )) (compound_statement "{\nLAB_0010d018:\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\nLAB_0010d029:\n        local_50 = Layout::make_output_segment(layout,1,local_4c);\n        *(uint *)&local_50->vaddr_ = uVar5;\n        *(int *)((int)&local_50->vaddr_ + 4) = iVar6;\n        *(uint *)&local_50->paddr_ = (uint)local_44;\n        uVar13 = *(uint *)((int)&local_50->min_p_align_ + 4);\n        *(uint *)((int)&local_50->paddr_ + 4) = local_44._4_4_;\n        local_50->field_0x19c = local_50->field_0x19c | 2;\n        if (uVar13 < dot_alignment._4_4_ ||\n            uVar13 - dot_alignment._4_4_ <\n            (uint)((uint)local_50->min_p_align_ < (uint)dot_alignment)) {\n          local_50->min_p_align_ = dot_alignment;\n        }\n        local_7d = 0;\n        local_34 = bVar3 & 1;\n        if (local_90 == (Output_segment *)0x0) {\n          local_90 = local_50;\n        }\n      }" { (labeled_statement "LAB_0010d018:\n        local_4c = Layout::section_flags_to_segment(*pEVar1);" statement_identifier : (ERROR "local_4c = Layout::" (assignment_expression "local_4c = Layout" identifier = identifier) : :) (expression_statement "section_flags_to_segment(*pEVar1);" (call_expression "section_flags_to_segment(*pEVar1)" identifier (argument_list "(*pEVar1)" ( (pointer_expression "*pEVar1" * identifier) ))) ;)) (labeled_statement "LAB_0010d029:\n        local_50 = Layout::make_output_segment(layout,1,local_4c);" statement_identifier : (ERROR "local_50 = Layout::" (assignment_expression "local_50 = Layout" identifier = identifier) : :) (expression_statement "make_output_segment(layout,1,local_4c);" (call_expression "make_output_segment(layout,1,local_4c)" identifier (argument_list "(layout,1,local_4c)" ( identifier , number_literal , identifier ))) ;)) (expression_statement "*(uint *)&local_50->vaddr_ = uVar5;" (assignment_expression "*(uint *)&local_50->vaddr_ = uVar5" (pointer_expression "*(uint *)&local_50->vaddr_" * (cast_expression "(uint *)&local_50->vaddr_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_50->vaddr_" & (field_expression "local_50->vaddr_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&local_50->vaddr_ + 4) = iVar6;" (assignment_expression "*(int *)((int)&local_50->vaddr_ + 4) = iVar6" (pointer_expression "*(int *)((int)&local_50->vaddr_ + 4)" * (cast_expression "(int *)((int)&local_50->vaddr_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_50->vaddr_ + 4)" ( (binary_expression "(int)&local_50->vaddr_ + 4" (cast_expression "(int)&local_50->vaddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_50->vaddr_" & (field_expression "local_50->vaddr_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)&local_50->paddr_ = (uint)local_44;" (assignment_expression "*(uint *)&local_50->paddr_ = (uint)local_44" (pointer_expression "*(uint *)&local_50->paddr_" * (cast_expression "(uint *)&local_50->paddr_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_50->paddr_" & (field_expression "local_50->paddr_" identifier -> field_identifier)))) = (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar13 = *(uint *)((int)&local_50->min_p_align_ + 4);" (assignment_expression "uVar13 = *(uint *)((int)&local_50->min_p_align_ + 4)" identifier = (pointer_expression "*(uint *)((int)&local_50->min_p_align_ + 4)" * (cast_expression "(uint *)((int)&local_50->min_p_align_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_50->min_p_align_ + 4)" ( (binary_expression "(int)&local_50->min_p_align_ + 4" (cast_expression "(int)&local_50->min_p_align_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_50->min_p_align_" & (field_expression "local_50->min_p_align_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(uint *)((int)&local_50->paddr_ + 4) = local_44._4_4_;" (assignment_expression "*(uint *)((int)&local_50->paddr_ + 4) = local_44._4_4_" (pointer_expression "*(uint *)((int)&local_50->paddr_ + 4)" * (cast_expression "(uint *)((int)&local_50->paddr_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_50->paddr_ + 4)" ( (binary_expression "(int)&local_50->paddr_ + 4" (cast_expression "(int)&local_50->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_50->paddr_" & (field_expression "local_50->paddr_" identifier -> field_identifier))) + number_literal) )))) = (field_expression "local_44._4_4_" identifier . field_identifier)) ;) (expression_statement "local_50->field_0x19c = local_50->field_0x19c | 2;" (assignment_expression "local_50->field_0x19c = local_50->field_0x19c | 2" (field_expression "local_50->field_0x19c" identifier -> field_identifier) = (binary_expression "local_50->field_0x19c | 2" (field_expression "local_50->field_0x19c" identifier -> field_identifier) | number_literal)) ;) (if_statement "if (uVar13 < dot_alignment._4_4_ ||\n            uVar13 - dot_alignment._4_4_ <\n            (uint)((uint)local_50->min_p_align_ < (uint)dot_alignment)) {\n          local_50->min_p_align_ = dot_alignment;\n        }" if (parenthesized_expression "(uVar13 < dot_alignment._4_4_ ||\n            uVar13 - dot_alignment._4_4_ <\n            (uint)((uint)local_50->min_p_align_ < (uint)dot_alignment))" ( (binary_expression "uVar13 < dot_alignment._4_4_ ||\n            uVar13 - dot_alignment._4_4_ <\n            (uint)((uint)local_50->min_p_align_ < (uint)dot_alignment)" (binary_expression "uVar13 < dot_alignment._4_4_" identifier < (field_expression "dot_alignment._4_4_" identifier . field_identifier)) || (binary_expression "uVar13 - dot_alignment._4_4_ <\n            (uint)((uint)local_50->min_p_align_ < (uint)dot_alignment)" (binary_expression "uVar13 - dot_alignment._4_4_" identifier - (field_expression "dot_alignment._4_4_" identifier . field_identifier)) < (call_expression "(uint)((uint)local_50->min_p_align_ < (uint)dot_alignment)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)local_50->min_p_align_ < (uint)dot_alignment)" ( (binary_expression "(uint)local_50->min_p_align_ < (uint)dot_alignment" (cast_expression "(uint)local_50->min_p_align_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_50->min_p_align_" identifier -> field_identifier)) < (cast_expression "(uint)dot_alignment" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n          local_50->min_p_align_ = dot_alignment;\n        }" { (expression_statement "local_50->min_p_align_ = dot_alignment;" (assignment_expression "local_50->min_p_align_ = dot_alignment" (field_expression "local_50->min_p_align_" identifier -> field_identifier) = identifier) ;) })) (expression_statement "local_7d = 0;" (assignment_expression "local_7d = 0" identifier = number_literal) ;) (expression_statement "local_34 = bVar3 & 1;" (assignment_expression "local_34 = bVar3 & 1" identifier = (binary_expression "bVar3 & 1" identifier & number_literal)) ;) (if_statement "if (local_90 == (Output_segment *)0x0) {\n          local_90 = local_50;\n        }" if (parenthesized_expression "(local_90 == (Output_segment *)0x0)" ( (binary_expression "local_90 == (Output_segment *)0x0" identifier == (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_90 = local_50;\n        }" { (expression_statement "local_90 = local_50;" (assignment_expression "local_90 = local_50" identifier = identifier) ;) })) }) (else_clause "else {\n        bVar10 = CARRY4(local_6c,local_4c);\n        local_4c = local_6c + local_4c;\n        local_48 = local_68 + local_48 + (uint)bVar10;\n        uVar13 = local_44._4_4_;\n        uVar19 = (uint)local_44;\n        if (local_98 != 0 || local_9c != 0) {\n          local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16;\n          local_4c = -local_9c & local_4c + uVar18;\n          uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16;\n          uVar19 = -local_9c & (uint)local_44 + uVar18;\n        }\n        if (local_48 < uVar13 || local_48 - uVar13 < (uint)(local_4c < uVar19)) goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54->type_ != 8) goto LAB_0010d018;\n          if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = Layout::section_flags_to_segment(*pEVar1);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((*pEVar1 & 1) != 0)) {\n          if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          local_34 = (parameters->options_->omagic_).value;\n          if ((bool)local_34 == false) goto LAB_0010d018;\n        }\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\n      }" else (compound_statement "{\n        bVar10 = CARRY4(local_6c,local_4c);\n        local_4c = local_6c + local_4c;\n        local_48 = local_68 + local_48 + (uint)bVar10;\n        uVar13 = local_44._4_4_;\n        uVar19 = (uint)local_44;\n        if (local_98 != 0 || local_9c != 0) {\n          local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16;\n          local_4c = -local_9c & local_4c + uVar18;\n          uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16;\n          uVar19 = -local_9c & (uint)local_44 + uVar18;\n        }\n        if (local_48 < uVar13 || local_48 - uVar13 < (uint)(local_4c < uVar19)) goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54->type_ != 8) goto LAB_0010d018;\n          if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = Layout::section_flags_to_segment(*pEVar1);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((*pEVar1 & 1) != 0)) {\n          if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          local_34 = (parameters->options_->omagic_).value;\n          if ((bool)local_34 == false) goto LAB_0010d018;\n        }\n        local_4c = Layout::section_flags_to_segment(*pEVar1);\n      }" { (expression_statement "bVar10 = CARRY4(local_6c,local_4c);" (assignment_expression "bVar10 = CARRY4(local_6c,local_4c)" identifier = (call_expression "CARRY4(local_6c,local_4c)" identifier (argument_list "(local_6c,local_4c)" ( identifier , identifier )))) ;) (expression_statement "local_4c = local_6c + local_4c;" (assignment_expression "local_4c = local_6c + local_4c" identifier = (binary_expression "local_6c + local_4c" identifier + identifier)) ;) (expression_statement "local_48 = local_68 + local_48 + (uint)bVar10;" (assignment_expression "local_48 = local_68 + local_48 + (uint)bVar10" identifier = (binary_expression "local_68 + local_48 + (uint)bVar10" (binary_expression "local_68 + local_48" identifier + identifier) + (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "uVar13 = local_44._4_4_;" (assignment_expression "uVar13 = local_44._4_4_" identifier = (field_expression "local_44._4_4_" identifier . field_identifier)) ;) (expression_statement "uVar19 = (uint)local_44;" (assignment_expression "uVar19 = (uint)local_44" identifier = (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_98 != 0 || local_9c != 0) {\n          local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16;\n          local_4c = -local_9c & local_4c + uVar18;\n          uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16;\n          uVar19 = -local_9c & (uint)local_44 + uVar18;\n        }" if (parenthesized_expression "(local_98 != 0 || local_9c != 0)" ( (binary_expression "local_98 != 0 || local_9c != 0" (binary_expression "local_98 != 0" identifier != number_literal) || (binary_expression "local_9c != 0" identifier != number_literal)) )) (compound_statement "{\n          local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16;\n          local_4c = -local_9c & local_4c + uVar18;\n          uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16;\n          uVar19 = -local_9c & (uint)local_44 + uVar18;\n        }" { (expression_statement "local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16;" (assignment_expression "local_48 = local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16" identifier = (binary_expression "local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18) & uVar16" (binary_expression "local_48 + iVar17 + (uint)CARRY4(local_4c,uVar18)" (binary_expression "local_48 + iVar17" identifier + identifier) + (cast_expression "(uint)CARRY4(local_4c,uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(local_4c,uVar18)" identifier (argument_list "(local_4c,uVar18)" ( identifier , identifier ))))) & identifier)) ;) (expression_statement "local_4c = -local_9c & local_4c + uVar18;" (assignment_expression "local_4c = -local_9c & local_4c + uVar18" identifier = (binary_expression "-local_9c & local_4c + uVar18" (unary_expression "-local_9c" - identifier) & (binary_expression "local_4c + uVar18" identifier + identifier))) ;) (expression_statement "uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16;" (assignment_expression "uVar13 = local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16" identifier = (binary_expression "local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18) & uVar16" (binary_expression "local_44._4_4_ + iVar17 + (uint)CARRY4((uint)local_44,uVar18)" (binary_expression "local_44._4_4_ + iVar17" (field_expression "local_44._4_4_" identifier . field_identifier) + identifier) + (cast_expression "(uint)CARRY4((uint)local_44,uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_44,uVar18)" identifier (argument_list "((uint)local_44,uVar18)" ( (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) & identifier)) ;) (expression_statement "uVar19 = -local_9c & (uint)local_44 + uVar18;" (assignment_expression "uVar19 = -local_9c & (uint)local_44 + uVar18" identifier = (binary_expression "-local_9c & (uint)local_44 + uVar18" (unary_expression "-local_9c" - identifier) & (binary_expression "(uint)local_44 + uVar18" (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier))) ;) })) (if_statement "if (local_48 < uVar13 || local_48 - uVar13 < (uint)(local_4c < uVar19)) goto LAB_0010d018;" if (parenthesized_expression "(local_48 < uVar13 || local_48 - uVar13 < (uint)(local_4c < uVar19))" ( (binary_expression "local_48 < uVar13 || local_48 - uVar13 < (uint)(local_4c < uVar19)" (binary_expression "local_48 < uVar13" identifier < identifier) || (binary_expression "local_48 - uVar13 < (uint)(local_4c < uVar19)" (binary_expression "local_48 - uVar13" identifier - identifier) < (call_expression "(uint)(local_4c < uVar19)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_4c < uVar19)" ( (binary_expression "local_4c < uVar19" identifier < identifier) ))))) )) (goto_statement "goto LAB_0010d018;" goto statement_identifier ;)) (if_statement "if (local_7d != 0) {\n          if (local_54->type_ != 8) goto LAB_0010d018;\n          if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = Layout::section_flags_to_segment(*pEVar1);\n          goto LAB_0010d029;\n        }" if (parenthesized_expression "(local_7d != 0)" ( (binary_expression "local_7d != 0" identifier != number_literal) )) (compound_statement "{\n          if (local_54->type_ != 8) goto LAB_0010d018;\n          if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = Layout::section_flags_to_segment(*pEVar1);\n          goto LAB_0010d029;\n        }" { (if_statement "if (local_54->type_ != 8) goto LAB_0010d018;" if (parenthesized_expression "(local_54->type_ != 8)" ( (binary_expression "local_54->type_ != 8" (field_expression "local_54->type_" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_0010d018;" goto statement_identifier ;)) (if_statement "if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;" if (parenthesized_expression "((*pEVar1 & 0x400) == 0)" ( (binary_expression "(*pEVar1 & 0x400) == 0" (parenthesized_expression "(*pEVar1 & 0x400)" ( (binary_expression "*pEVar1 & 0x400" (pointer_expression "*pEVar1" * identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0010d2c0;" goto statement_identifier ;)) (ERROR "local_4c = Layout::" (assignment_expression "local_4c = Layout" identifier = identifier) : :) (expression_statement "section_flags_to_segment(*pEVar1);" (call_expression "section_flags_to_segment(*pEVar1)" identifier (argument_list "(*pEVar1)" ( (pointer_expression "*pEVar1" * identifier) ))) ;) (goto_statement "goto LAB_0010d029;" goto statement_identifier ;) })) (labeled_statement "LAB_0010d2c0:\n        if ((local_34 != 0) && ((*pEVar1 & 1) != 0)) {\n          if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          local_34 = (parameters->options_->omagic_).value;\n          if ((bool)local_34 == false) goto LAB_0010d018;\n        }" statement_identifier : (if_statement "if ((local_34 != 0) && ((*pEVar1 & 1) != 0)) {\n          if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          local_34 = (parameters->options_->omagic_).value;\n          if ((bool)local_34 == false) goto LAB_0010d018;\n        }" if (parenthesized_expression "((local_34 != 0) && ((*pEVar1 & 1) != 0))" ( (binary_expression "(local_34 != 0) && ((*pEVar1 & 1) != 0)" (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) && (parenthesized_expression "((*pEVar1 & 1) != 0)" ( (binary_expression "(*pEVar1 & 1) != 0" (parenthesized_expression "(*pEVar1 & 1)" ( (binary_expression "*pEVar1 & 1" (pointer_expression "*pEVar1" * identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          local_34 = (parameters->options_->omagic_).value;\n          if ((bool)local_34 == false) goto LAB_0010d018;\n        }" { (if_statement "if (parameters->options_ == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_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_34 = (parameters->options_->omagic_).value;" (assignment_expression "local_34 = (parameters->options_->omagic_).value" identifier = (field_expression "(parameters->options_->omagic_).value" (parenthesized_expression "(parameters->options_->omagic_)" ( (field_expression "parameters->options_->omagic_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((bool)local_34 == false) goto LAB_0010d018;" if (parenthesized_expression "((bool)local_34 == false)" ( (binary_expression "(bool)local_34 == false" (cast_expression "(bool)local_34" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) (goto_statement "goto LAB_0010d018;" goto statement_identifier ;)) }))) (ERROR "local_4c = Layout::" (assignment_expression "local_4c = Layout" identifier = identifier) : :) (expression_statement "section_flags_to_segment(*pEVar1);" (call_expression "section_flags_to_segment(*pEVar1)" identifier (argument_list "(*pEVar1)" ( (pointer_expression "*pEVar1" * identifier) ))) ;) }))) (labeled_statement "Output_segment::add_output_section_to_load(local_50,layout,*ppOVar15,local_4c);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_to_load(local_50,layout,*ppOVar15,local_4c);" (call_expression "add_output_section_to_load(local_50,layout,*ppOVar15,local_4c)" identifier (argument_list "(local_50,layout,*ppOVar15,local_4c)" ( identifier , identifier , (pointer_expression "*ppOVar15" * identifier) , identifier ))) ;)) (expression_statement "uVar13 = (uint)(*ppOVar15)->flags_;" (assignment_expression "uVar13 = (uint)(*ppOVar15)->flags_" identifier = (field_expression "(uint)(*ppOVar15)->flags_" (call_expression "(uint)(*ppOVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*ppOVar15)" ( (pointer_expression "*ppOVar15" * identifier) ))) -> field_identifier)) ;) (if_statement "if ((uVar13 & 1) != 0) {\n        local_34 = 0;\n      }" if (parenthesized_expression "((uVar13 & 1) != 0)" ( (binary_expression "(uVar13 & 1) != 0" (parenthesized_expression "(uVar13 & 1)" ( (binary_expression "uVar13 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        local_34 = 0;\n      }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) })) (if_statement "if (((*ppOVar15)->type_ == 8) &&\n         (bVar9 = ((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0), bVar9 != 0)) {\n        local_7d = bVar9;\n      }" if (parenthesized_expression "(((*ppOVar15)->type_ == 8) &&\n         (bVar9 = ((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0), bVar9 != 0))" ( (binary_expression "((*ppOVar15)->type_ == 8) &&\n         (bVar9 = ((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0), bVar9 != 0)" (parenthesized_expression "((*ppOVar15)->type_ == 8)" ( (binary_expression "(*ppOVar15)->type_ == 8" (field_expression "(*ppOVar15)->type_" (parenthesized_expression "(*ppOVar15)" ( (pointer_expression "*ppOVar15" * identifier) )) -> field_identifier) == number_literal) )) && (parenthesized_expression "(bVar9 = ((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0), bVar9 != 0)" ( (comma_expression "bVar9 = ((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0), bVar9 != 0" (assignment_expression "bVar9 = ((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0)" identifier = (binary_expression "((byte)(uVar13 >> 10) ^ 1) & (uVar8 != 0 || iVar14 != 0)" (parenthesized_expression "((byte)(uVar13 >> 10) ^ 1)" ( (binary_expression "(byte)(uVar13 >> 10) ^ 1" (call_expression "(byte)(uVar13 >> 10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar13 >> 10)" ( (binary_expression "uVar13 >> 10" identifier >> number_literal) ))) ^ number_literal) )) & (parenthesized_expression "(uVar8 != 0 || iVar14 != 0)" ( (binary_expression "uVar8 != 0 || iVar14 != 0" (binary_expression "uVar8 != 0" identifier != number_literal) || (binary_expression "iVar14 != 0" identifier != number_literal)) )))) , (binary_expression "bVar9 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        local_7d = bVar9;\n      }" { (expression_statement "local_7d = bVar9;" (assignment_expression "local_7d = bVar9" identifier = identifier) ;) })) (expression_statement "ppOVar15 = ppOVar15 + 1;" (assignment_expression "ppOVar15 = ppOVar15 + 1" identifier = (binary_expression "ppOVar15 + 1" identifier + number_literal)) ;) (if_statement "if (sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n          ._M_impl._M_finish == ppOVar15) {\n        ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                   ._M_impl._M_start;\n        if (local_90 != (Output_segment *)0x0) {\n          pGVar4 = parameters->options_;\n          if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false)) {\n            sizeof_headers = total_header_size(this,layout);\n            uVar16 = (uint)local_90->vaddr_;\n            uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);\n            uVar5 = (uint)local_90->paddr_;\n            uVar8 = *(uint *)((int)&local_90->paddr_ + 4);\n            length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);\n            local_44._0_4_ = (uint)length;\n            local_44._4_4_ = (uint)(length >> 0x20);\n            ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start;\n            if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }" if (parenthesized_expression "(sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n          ._M_impl._M_finish == ppOVar15)" ( (binary_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n          ._M_impl._M_finish == ppOVar15" (field_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n          ._M_impl._M_finish" (field_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n          ._M_impl" (binary_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "sections.super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "sections.super__Vector_base<gold::Output_section*,_std" (binary_expression "sections.super__Vector_base<gold" (field_expression "sections.super__Vector_base" identifier . field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) == identifier) )) (compound_statement "{\n        ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                   ._M_impl._M_start;\n        if (local_90 != (Output_segment *)0x0) {\n          pGVar4 = parameters->options_;\n          if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false)) {\n            sizeof_headers = total_header_size(this,layout);\n            uVar16 = (uint)local_90->vaddr_;\n            uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);\n            uVar5 = (uint)local_90->paddr_;\n            uVar8 = *(uint *)((int)&local_90->paddr_ + 4);\n            length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);\n            local_44._0_4_ = (uint)length;\n            local_44._4_4_ = (uint)(length >> 0x20);\n            ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start;\n            if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }" { (expression_statement "ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                   ._M_impl._M_start;" (field_expression "ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                   ._M_impl._M_start" (field_expression "ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                   ._M_impl" (binary_expression "ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar15 = sections.\n                   super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar15 = sections.\n                   super__Vector_base<gold" identifier = (binary_expression "sections.\n                   super__Vector_base<gold" (field_expression "sections.\n                   super__Vector_base" identifier . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (local_90 != (Output_segment *)0x0) {\n          pGVar4 = parameters->options_;\n          if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false)) {\n            sizeof_headers = total_header_size(this,layout);\n            uVar16 = (uint)local_90->vaddr_;\n            uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);\n            uVar5 = (uint)local_90->paddr_;\n            uVar8 = *(uint *)((int)&local_90->paddr_ + 4);\n            length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);\n            local_44._0_4_ = (uint)length;\n            local_44._4_4_ = (uint)(length >> 0x20);\n            ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start;\n            if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }\n          }\n        }" if (parenthesized_expression "(local_90 != (Output_segment *)0x0)" ( (binary_expression "local_90 != (Output_segment *)0x0" identifier != (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pGVar4 = parameters->options_;\n          if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }\n          if (((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false)) {\n            sizeof_headers = total_header_size(this,layout);\n            uVar16 = (uint)local_90->vaddr_;\n            uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);\n            uVar5 = (uint)local_90->paddr_;\n            uVar8 = *(uint *)((int)&local_90->paddr_ + 4);\n            length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);\n            local_44._0_4_ = (uint)length;\n            local_44._4_4_ = (uint)(length >> 0x20);\n            ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start;\n            if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }\n          }\n        }" { (expression_statement "pGVar4 = parameters->options_;" (assignment_expression "pGVar4 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar4 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n          }" if (parenthesized_expression "(pGVar4 == (General_options *)0x0)" ( (binary_expression "pGVar4 == (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 (((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false)) {\n            sizeof_headers = total_header_size(this,layout);\n            uVar16 = (uint)local_90->vaddr_;\n            uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);\n            uVar5 = (uint)local_90->paddr_;\n            uVar8 = *(uint *)((int)&local_90->paddr_ + 4);\n            length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);\n            local_44._0_4_ = (uint)length;\n            local_44._4_4_ = (uint)(length >> 0x20);\n            ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start;\n            if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }\n          }" if (parenthesized_expression "(((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false))" ( (binary_expression "((pGVar4->nmagic_).value == false) && ((pGVar4->omagic_).value == false)" (parenthesized_expression "((pGVar4->nmagic_).value == false)" ( (binary_expression "(pGVar4->nmagic_).value == false" (field_expression "(pGVar4->nmagic_).value" (parenthesized_expression "(pGVar4->nmagic_)" ( (field_expression "pGVar4->nmagic_" identifier -> field_identifier) )) . field_identifier) == false) )) && (parenthesized_expression "((pGVar4->omagic_).value == false)" ( (binary_expression "(pGVar4->omagic_).value == false" (field_expression "(pGVar4->omagic_).value" (parenthesized_expression "(pGVar4->omagic_)" ( (field_expression "pGVar4->omagic_" identifier -> field_identifier) )) . field_identifier) == false) ))) )) (compound_statement "{\n            sizeof_headers = total_header_size(this,layout);\n            uVar16 = (uint)local_90->vaddr_;\n            uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);\n            uVar5 = (uint)local_90->paddr_;\n            uVar8 = *(uint *)((int)&local_90->paddr_ + 4);\n            length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);\n            local_44._0_4_ = (uint)length;\n            local_44._4_4_ = (uint)(length >> 0x20);\n            ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start;\n            if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }\n          }" { (expression_statement "sizeof_headers = total_header_size(this,layout);" (assignment_expression "sizeof_headers = total_header_size(this,layout)" identifier = (call_expression "total_header_size(this,layout)" identifier (argument_list "(this,layout)" ( identifier , identifier )))) ;) (expression_statement "uVar16 = (uint)local_90->vaddr_;" (assignment_expression "uVar16 = (uint)local_90->vaddr_" identifier = (cast_expression "(uint)local_90->vaddr_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_90->vaddr_" identifier -> field_identifier))) ;) (expression_statement "uVar18 = *(uint *)((int)&local_90->vaddr_ + 4);" (assignment_expression "uVar18 = *(uint *)((int)&local_90->vaddr_ + 4)" identifier = (pointer_expression "*(uint *)((int)&local_90->vaddr_ + 4)" * (cast_expression "(uint *)((int)&local_90->vaddr_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_90->vaddr_ + 4)" ( (binary_expression "(int)&local_90->vaddr_ + 4" (cast_expression "(int)&local_90->vaddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_90->vaddr_" & (field_expression "local_90->vaddr_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar5 = (uint)local_90->paddr_;" (assignment_expression "uVar5 = (uint)local_90->paddr_" identifier = (cast_expression "(uint)local_90->paddr_" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_90->paddr_" identifier -> field_identifier))) ;) (expression_statement "uVar8 = *(uint *)((int)&local_90->paddr_ + 4);" (assignment_expression "uVar8 = *(uint *)((int)&local_90->paddr_ + 4)" identifier = (pointer_expression "*(uint *)((int)&local_90->paddr_ + 4)" * (cast_expression "(uint *)((int)&local_90->paddr_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_90->paddr_ + 4)" ( (binary_expression "(int)&local_90->paddr_ + 4" (cast_expression "(int)&local_90->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_90->paddr_" & (field_expression "local_90->paddr_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "length = header_size_adjustment(this,local_90->paddr_,sizeof_headers);" (assignment_expression "length = header_size_adjustment(this,local_90->paddr_,sizeof_headers)" identifier = (call_expression "header_size_adjustment(this,local_90->paddr_,sizeof_headers)" identifier (argument_list "(this,local_90->paddr_,sizeof_headers)" ( identifier , (field_expression "local_90->paddr_" identifier -> field_identifier) , identifier )))) ;) (expression_statement "local_44._0_4_ = (uint)length;" (assignment_expression "local_44._0_4_ = (uint)length" (field_expression "local_44._0_4_" identifier . field_identifier) = (cast_expression "(uint)length" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_44._4_4_ = (uint)(length >> 0x20);" (assignment_expression "local_44._4_4_ = (uint)(length >> 0x20)" (field_expression "local_44._4_4_" identifier . field_identifier) = (call_expression "(uint)(length >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(length >> 0x20)" ( (binary_expression "length >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start;" (field_expression "ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl._M_start" (field_expression "ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                       ._M_impl" (binary_expression "ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar15 = sections.\n                       super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar15 = sections.\n                       super__Vector_base<gold" identifier = (binary_expression "sections.\n                       super__Vector_base<gold" (field_expression "sections.\n                       super__Vector_base" identifier . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)) {\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }" if (parenthesized_expression "((uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers))" ( (binary_expression "(uVar8 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar5 & local_9c - 1U) < sizeof_headers)" (parenthesized_expression "(uVar8 & local_98 + -1 + (uint)(local_9c != 0))" ( (binary_expression "uVar8 & local_98 + -1 + (uint)(local_9c != 0)" identifier & (binary_expression "local_98 + -1 + (uint)(local_9c != 0)" (binary_expression "local_98 + -1" identifier + number_literal) + (call_expression "(uint)(local_9c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c != 0)" ( (binary_expression "local_9c != 0" identifier != number_literal) ))))) )) < (call_expression "(uint)((uVar5 & local_9c - 1U) < sizeof_headers)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar5 & local_9c - 1U) < sizeof_headers)" ( (binary_expression "(uVar5 & local_9c - 1U) < sizeof_headers" (parenthesized_expression "(uVar5 & local_9c - 1U)" ( (binary_expression "uVar5 & local_9c - 1U" identifier & (binary_expression "local_9c - 1U" identifier - number_literal)) )) < identifier) )))) )) (compound_statement "{\n              if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }\n            }" { (if_statement "if ((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)) {\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }" if (parenthesized_expression "((local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_))" ( (binary_expression "(local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_) &&\n                 (local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)" (parenthesized_expression "(local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_)" ( (binary_expression "local_44._4_4_ <= uVar8 &&\n                   (uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_" (binary_expression "local_44._4_4_ <= uVar8" (field_expression "local_44._4_4_" identifier . field_identifier) <= identifier) && (binary_expression "(uint)(uVar5 < (uint)local_44) <= uVar8 - local_44._4_4_" (call_expression "(uint)(uVar5 < (uint)local_44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < (uint)local_44)" ( (binary_expression "uVar5 < (uint)local_44" identifier < (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "uVar8 - local_44._4_4_" identifier - (field_expression "local_44._4_4_" identifier . field_identifier)))) )) && (parenthesized_expression "(local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_)" ( (binary_expression "local_44._4_4_ <= uVar18 &&\n                  (uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_" (binary_expression "local_44._4_4_ <= uVar18" (field_expression "local_44._4_4_" identifier . field_identifier) <= identifier) && (binary_expression "(uint)(uVar16 < (uint)local_44) <= uVar18 - local_44._4_4_" (call_expression "(uint)(uVar16 < (uint)local_44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < (uint)local_44)" ( (binary_expression "uVar16 < (uint)local_44" identifier < (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "uVar18 - local_44._4_4_" identifier - (field_expression "local_44._4_4_" identifier . field_identifier)))) ))) )) (compound_statement "{\n                if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }\n                local_94 = Layout::make_output_segment(layout,1,4);\n                *(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;\n                *(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n                local_94->field_0x19c = local_94->field_0x19c | 2;\n                *(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;\n                *(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n                ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;\n              }" { (if_statement "if ((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)) {\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }" if (parenthesized_expression "((this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10))" ( (binary_expression "(this->memory_regions_ != (Memory_regions *)0x0) &&\n                   (bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)" (parenthesized_expression "(this->memory_regions_ != (Memory_regions *)0x0)" ( (binary_expression "this->memory_regions_ != (Memory_regions *)0x0" (field_expression "this->memory_regions_" identifier -> field_identifier) != (cast_expression "(Memory_regions *)0x0" ( (type_descriptor "Memory_regions *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10)" ( (comma_expression "bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length), !bVar10" (assignment_expression "bVar10 = block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length)" identifier = (call_expression "block_in_region(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length)" identifier (argument_list "(this,(Symbol_table *)0x0,layout,\n                                             CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44),length)" ( identifier , (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (call_expression "CONCAT44((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44)" identifier (argument_list "((uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44),\n                                                      uVar5 - (uint)local_44)" ( (binary_expression "(uVar8 - local_44._4_4_) -\n                                                      (uint)(uVar5 < (uint)local_44)" (parenthesized_expression "(uVar8 - local_44._4_4_)" ( (binary_expression "uVar8 - local_44._4_4_" identifier - (field_expression "local_44._4_4_" identifier . field_identifier)) )) - (call_expression "(uint)(uVar5 < (uint)local_44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < (uint)local_44)" ( (binary_expression "uVar5 < (uint)local_44" identifier < (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) , (binary_expression "uVar5 - (uint)local_44" identifier - (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) , identifier )))) , (unary_expression "!bVar10" ! identifier)) ))) )) (compound_statement "{\n                  format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );\n                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */\n                  gold_warning(format);\n                }" { (expression_statement "format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          );" (assignment_expression "format = (char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          )" identifier = (cast_expression "(char *)gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          )" identifier (argument_list "(\n                                          "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                          )" ( (string_literal ""creating a segment to contain the file and program headers outside of any MEMORY region"" " string_content ") ))))) ;) comment (expression_statement "gold_warning(format);" (call_expression "gold_warning(format)" identifier (argument_list "(format)" ( identifier ))) ;) })) (ERROR "local_94 = Layout::" (assignment_expression "local_94 = Layout" identifier = identifier) : :) (expression_statement "make_output_segment(layout,1,4);" (call_expression "make_output_segment(layout,1,4)" identifier (argument_list "(layout,1,4)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "*(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44;" (assignment_expression "*(uint *)&local_94->vaddr_ = uVar16 - (uint)local_44" (pointer_expression "*(uint *)&local_94->vaddr_" * (cast_expression "(uint *)&local_94->vaddr_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_94->vaddr_" & (field_expression "local_94->vaddr_" identifier -> field_identifier)))) = (binary_expression "uVar16 - (uint)local_44" identifier - (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "*(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);" (assignment_expression "*(uint *)((int)&local_94->vaddr_ + 4) =\n                     (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44)" (pointer_expression "*(uint *)((int)&local_94->vaddr_ + 4)" * (cast_expression "(uint *)((int)&local_94->vaddr_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_94->vaddr_ + 4)" ( (binary_expression "(int)&local_94->vaddr_ + 4" (cast_expression "(int)&local_94->vaddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_94->vaddr_" & (field_expression "local_94->vaddr_" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "(uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44)" (parenthesized_expression "(uVar18 - local_44._4_4_)" ( (binary_expression "uVar18 - local_44._4_4_" identifier - (field_expression "local_44._4_4_" identifier . field_identifier)) )) - (call_expression "(uint)(uVar16 < (uint)local_44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < (uint)local_44)" ( (binary_expression "uVar16 < (uint)local_44" identifier < (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ;) (expression_statement "local_94->field_0x19c = local_94->field_0x19c | 2;" (assignment_expression "local_94->field_0x19c = local_94->field_0x19c | 2" (field_expression "local_94->field_0x19c" identifier -> field_identifier) = (binary_expression "local_94->field_0x19c | 2" (field_expression "local_94->field_0x19c" identifier -> field_identifier) | number_literal)) ;) (expression_statement "*(uint *)&local_94->paddr_ = uVar5 - (uint)local_44;" (assignment_expression "*(uint *)&local_94->paddr_ = uVar5 - (uint)local_44" (pointer_expression "*(uint *)&local_94->paddr_" * (cast_expression "(uint *)&local_94->paddr_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_94->paddr_" & (field_expression "local_94->paddr_" identifier -> field_identifier)))) = (binary_expression "uVar5 - (uint)local_44" identifier - (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "*(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);" (assignment_expression "*(uint *)((int)&local_94->paddr_ + 4) =\n                     (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44)" (pointer_expression "*(uint *)((int)&local_94->paddr_ + 4)" * (cast_expression "(uint *)((int)&local_94->paddr_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_94->paddr_ + 4)" ( (binary_expression "(int)&local_94->paddr_ + 4" (cast_expression "(int)&local_94->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_94->paddr_" & (field_expression "local_94->paddr_" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "(uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44)" (parenthesized_expression "(uVar8 - local_44._4_4_)" ( (binary_expression "uVar8 - local_44._4_4_" identifier - (field_expression "local_44._4_4_" identifier . field_identifier)) )) - (call_expression "(uint)(uVar5 < (uint)local_44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < (uint)local_44)" ( (binary_expression "uVar5 < (uint)local_44" identifier < (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ;) (expression_statement "ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start;" (field_expression "ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl._M_start" (field_expression "ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                           ._M_impl" (binary_expression "ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar15 = sections.\n                           super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar15 = sections.\n                           super__Vector_base<gold" identifier = (binary_expression "sections.\n                           super__Vector_base<gold" (field_expression "sections.\n                           super__Vector_base" identifier . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) })) }) (else_clause "else {\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }" else (compound_statement "{\n              local_94 = local_90;\n              *(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;\n              *(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);\n              *(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;\n              local_90->field_0x19c = local_90->field_0x19c | 2;\n              *(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);\n            }" { (expression_statement "local_94 = local_90;" (assignment_expression "local_94 = local_90" identifier = identifier) ;) (expression_statement "*(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44;" (assignment_expression "*(uint *)&local_90->vaddr_ = uVar16 - (uint)local_44" (pointer_expression "*(uint *)&local_90->vaddr_" * (cast_expression "(uint *)&local_90->vaddr_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->vaddr_" & (field_expression "local_90->vaddr_" identifier -> field_identifier)))) = (binary_expression "uVar16 - (uint)local_44" identifier - (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "*(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44);" (assignment_expression "*(uint *)((int)&local_90->vaddr_ + 4) =\n                   (uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44)" (pointer_expression "*(uint *)((int)&local_90->vaddr_ + 4)" * (cast_expression "(uint *)((int)&local_90->vaddr_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_90->vaddr_ + 4)" ( (binary_expression "(int)&local_90->vaddr_ + 4" (cast_expression "(int)&local_90->vaddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_90->vaddr_" & (field_expression "local_90->vaddr_" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "(uVar18 - local_44._4_4_) - (uint)(uVar16 < (uint)local_44)" (parenthesized_expression "(uVar18 - local_44._4_4_)" ( (binary_expression "uVar18 - local_44._4_4_" identifier - (field_expression "local_44._4_4_" identifier . field_identifier)) )) - (call_expression "(uint)(uVar16 < (uint)local_44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 < (uint)local_44)" ( (binary_expression "uVar16 < (uint)local_44" identifier < (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ;) (expression_statement "*(uint *)&local_90->paddr_ = uVar5 - (uint)local_44;" (assignment_expression "*(uint *)&local_90->paddr_ = uVar5 - (uint)local_44" (pointer_expression "*(uint *)&local_90->paddr_" * (cast_expression "(uint *)&local_90->paddr_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_90->paddr_" & (field_expression "local_90->paddr_" identifier -> field_identifier)))) = (binary_expression "uVar5 - (uint)local_44" identifier - (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "local_90->field_0x19c = local_90->field_0x19c | 2;" (assignment_expression "local_90->field_0x19c = local_90->field_0x19c | 2" (field_expression "local_90->field_0x19c" identifier -> field_identifier) = (binary_expression "local_90->field_0x19c | 2" (field_expression "local_90->field_0x19c" identifier -> field_identifier) | number_literal)) ;) (expression_statement "*(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44);" (assignment_expression "*(uint *)((int)&local_90->paddr_ + 4) =\n                   (uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44)" (pointer_expression "*(uint *)((int)&local_90->paddr_ + 4)" * (cast_expression "(uint *)((int)&local_90->paddr_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_90->paddr_ + 4)" ( (binary_expression "(int)&local_90->paddr_ + 4" (cast_expression "(int)&local_90->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_90->paddr_" & (field_expression "local_90->paddr_" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "(uVar8 - local_44._4_4_) - (uint)(uVar5 < (uint)local_44)" (parenthesized_expression "(uVar8 - local_44._4_4_)" ( (binary_expression "uVar8 - local_44._4_4_" identifier - (field_expression "local_44._4_4_" identifier . field_identifier)) )) - (call_expression "(uint)(uVar5 < (uint)local_44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < (uint)local_44)" ( (binary_expression "uVar5 < (uint)local_44" identifier < (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) ;) }))) })) })) (goto_statement "goto LAB_0010d48b;" goto statement_identifier ;) })) (expression_statement "pOVar12 = *ppOVar15;" (assignment_expression "pOVar12 = *ppOVar15" identifier = (pointer_expression "*ppOVar15" * identifier)) ;) (expression_statement "local_6c = (uint)local_44;" (assignment_expression "local_6c = (uint)local_44" identifier = (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_68 = local_44._4_4_;" (assignment_expression "local_68 = local_44._4_4_" identifier = (field_expression "local_44._4_4_" identifier . field_identifier)) ;) (expression_statement "local_7c = uVar5;" (assignment_expression "local_7c = uVar5" identifier = identifier) ;) (expression_statement "local_78 = iVar6;" (assignment_expression "local_78 = iVar6" identifier = identifier) ;) (expression_statement "local_4c = uVar8;" (assignment_expression "local_4c = uVar8" identifier = identifier) ;) (expression_statement "local_48 = iVar14;" (assignment_expression "local_48 = iVar14" identifier = identifier) ;) }) while (parenthesized_expression "(((pOVar12->super_Output_data).field_0x1c & 1) != 0)" ( (binary_expression "((pOVar12->super_Output_data).field_0x1c & 1) != 0" (parenthesized_expression "((pOVar12->super_Output_data).field_0x1c & 1)" ( (binary_expression "(pOVar12->super_Output_data).field_0x1c & 1" (field_expression "(pOVar12->super_Output_data).field_0x1c" (parenthesized_expression "(pOVar12->super_Output_data)" ( (field_expression "pOVar12->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) ;) })) comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xc5,"address");" (call_expression "do_gold_unreachable("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "int FUN_0010cd10(char *param_1,undefined4 param_2,uint param_3,uint param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  bool bVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  longlong lVar9;\n  byte bVar10;\n  char cVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int *piVar17;\n  undefined4 uVar18;\n  uint uVar19;\n  uint uVar20;\n  int *piVar21;\n  longlong lVar22;\n  undefined8 uVar23;\n  int local_9c;\n  int local_98;\n  int local_94;\n  int local_90;\n  byte local_7d;\n  int local_7c;\n  int local_78;\n  int *local_54;\n  int local_50;\n  uint local_4c;\n  uint local_48;\n  byte local_34;\n  int *local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  if (*param_1 == '\0') {\n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }\n  if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  if (*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {\n    return 0;\n  }\n  if (*(int *)(param_1 + 0x10) != 0) {\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }\n  local_28 = (int *)0x0;\n  local_24 = (int *)0x0;\n  local_20 = 0;\n                    \n  FUN_0007f630(param_2,&local_28);\n  piVar21 = local_24;\n  piVar17 = local_28;\n  uVar18 = *(undefined4 *)(param_1 + 4);\n  iVar12 = (int)local_24 - (int)local_28;\n  if (iVar12 < 0x7ffffffd) {\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }\n  else {\n    iVar12 = 0x1fffffff;\n  }\n  do {\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  } while (iVar12 != 0);\nLAB_0010d4d8:\n                    \n  FUN_001139b0(piVar17,piVar21,uVar18);\n  iVar13 = 0;\nLAB_0010ce6f:\n  FUN_00180760(iVar13,&DAT_0023a423);\n                    \n  FUN_00108730(param_1,param_2,&local_28);\n  if (*(int *)(DAT_00302378 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }\n  iVar12 = *(int *)(DAT_00302378 + 8);\n  if (iVar12 == 0) {\n                    \n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  local_98 = *(int *)(iVar12 + 0x521c);\n  local_9c = *(int *)(iVar12 + 0x5218);\n  if (local_98 == 0 && local_9c == 0) {\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }\n  local_94 = 0;\n  piVar17 = local_24;\n  if (local_28 == local_24) {\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }\n  piVar17 = (int *)*local_28;\n  bVar1 = *(byte *)(piVar17 + 7);\n  if ((bVar1 & 1) != 0) {\n    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\n  }\n                    \n  FUN_0005f0b0("../../gold/output.h",0xc5,"address");\n}\n\n" (function_definition "int FUN_0010cd10(char *param_1,undefined4 param_2,uint param_3,uint param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  bool bVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  longlong lVar9;\n  byte bVar10;\n  char cVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int *piVar17;\n  undefined4 uVar18;\n  uint uVar19;\n  uint uVar20;\n  int *piVar21;\n  longlong lVar22;\n  undefined8 uVar23;\n  int local_9c;\n  int local_98;\n  int local_94;\n  int local_90;\n  byte local_7d;\n  int local_7c;\n  int local_78;\n  int *local_54;\n  int local_50;\n  uint local_4c;\n  uint local_48;\n  byte local_34;\n  int *local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  if (*param_1 == '\0') {\n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }\n  if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  if (*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {\n    return 0;\n  }\n  if (*(int *)(param_1 + 0x10) != 0) {\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }\n  local_28 = (int *)0x0;\n  local_24 = (int *)0x0;\n  local_20 = 0;\n                    \n  FUN_0007f630(param_2,&local_28);\n  piVar21 = local_24;\n  piVar17 = local_28;\n  uVar18 = *(undefined4 *)(param_1 + 4);\n  iVar12 = (int)local_24 - (int)local_28;\n  if (iVar12 < 0x7ffffffd) {\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }\n  else {\n    iVar12 = 0x1fffffff;\n  }\n  do {\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  } while (iVar12 != 0);\nLAB_0010d4d8:\n                    \n  FUN_001139b0(piVar17,piVar21,uVar18);\n  iVar13 = 0;\nLAB_0010ce6f:\n  FUN_00180760(iVar13,&DAT_0023a423);\n                    \n  FUN_00108730(param_1,param_2,&local_28);\n  if (*(int *)(DAT_00302378 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }\n  iVar12 = *(int *)(DAT_00302378 + 8);\n  if (iVar12 == 0) {\n                    \n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  local_98 = *(int *)(iVar12 + 0x521c);\n  local_9c = *(int *)(iVar12 + 0x5218);\n  if (local_98 == 0 && local_9c == 0) {\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }\n  local_94 = 0;\n  piVar17 = local_24;\n  if (local_28 == local_24) {\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }\n  piVar17 = (int *)*local_28;\n  bVar1 = *(byte *)(piVar17 + 7);\n  if ((bVar1 & 1) != 0) {\n    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\n  }\n                    \n  FUN_0005f0b0("../../gold/output.h",0xc5,"address");\n}" primitive_type (function_declarator "FUN_0010cd10(char *param_1,undefined4 param_2,uint param_3,uint param_4)" identifier (parameter_list "(char *param_1,undefined4 param_2,uint param_3,uint param_4)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  bool bVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  longlong lVar9;\n  byte bVar10;\n  char cVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int *piVar17;\n  undefined4 uVar18;\n  uint uVar19;\n  uint uVar20;\n  int *piVar21;\n  longlong lVar22;\n  undefined8 uVar23;\n  int local_9c;\n  int local_98;\n  int local_94;\n  int local_90;\n  byte local_7d;\n  int local_7c;\n  int local_78;\n  int *local_54;\n  int local_50;\n  uint local_4c;\n  uint local_48;\n  byte local_34;\n  int *local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  if (*param_1 == '\0') {\n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }\n  if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  if (*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {\n    return 0;\n  }\n  if (*(int *)(param_1 + 0x10) != 0) {\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }\n  local_28 = (int *)0x0;\n  local_24 = (int *)0x0;\n  local_20 = 0;\n                    \n  FUN_0007f630(param_2,&local_28);\n  piVar21 = local_24;\n  piVar17 = local_28;\n  uVar18 = *(undefined4 *)(param_1 + 4);\n  iVar12 = (int)local_24 - (int)local_28;\n  if (iVar12 < 0x7ffffffd) {\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }\n  else {\n    iVar12 = 0x1fffffff;\n  }\n  do {\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  } while (iVar12 != 0);\nLAB_0010d4d8:\n                    \n  FUN_001139b0(piVar17,piVar21,uVar18);\n  iVar13 = 0;\nLAB_0010ce6f:\n  FUN_00180760(iVar13,&DAT_0023a423);\n                    \n  FUN_00108730(param_1,param_2,&local_28);\n  if (*(int *)(DAT_00302378 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }\n  iVar12 = *(int *)(DAT_00302378 + 8);\n  if (iVar12 == 0) {\n                    \n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  local_98 = *(int *)(iVar12 + 0x521c);\n  local_9c = *(int *)(iVar12 + 0x5218);\n  if (local_98 == 0 && local_9c == 0) {\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }\n  local_94 = 0;\n  piVar17 = local_24;\n  if (local_28 == local_24) {\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }\n  piVar17 = (int *)*local_28;\n  bVar1 = *(byte *)(piVar17 + 7);\n  if ((bVar1 & 1) != 0) {\n    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\n  }\n                    \n  FUN_0005f0b0("../../gold/output.h",0xc5,"address");\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "longlong lVar6;" type_identifier identifier ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (declaration "longlong lVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "longlong lVar22;" type_identifier identifier ;) (declaration "undefined8 uVar23;" type_identifier identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "byte local_7d;" type_identifier identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "int *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "byte local_34;" type_identifier identifier ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (if_statement "if (*param_1 == '\0') {\n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }" if (parenthesized_expression "(*param_1 == '\0')" ( (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }" { (expression_statement "FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);" (call_expression "FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1)" identifier (argument_list "("../../gold/script-sections.cc",0xf83,"create_segments",param_1)" ( (string_literal ""../../gold/script-sections.cc"" " string_content ") , number_literal , (string_literal ""create_segments"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }" if (parenthesized_expression "(*(int *)(DAT_00302378 + 8) == 0)" ( (binary_expression "*(int *)(DAT_00302378 + 8) == 0" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }" { (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);" (call_expression "FUN_0005f0b0("../../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 *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {\n    return 0;\n  }" if (parenthesized_expression "(*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0')" ( (binary_expression "*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(DAT_00302378 + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00302378 + 8) + 0x318d)" ( (binary_expression "*(int *)(DAT_00302378 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(param_1 + 0x10) != 0) {\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x10) != 0)" ( (binary_expression "*(int *)(param_1 + 0x10) != 0" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }" { (expression_statement "FUN_0010b6f0(param_1,param_2);" (call_expression "FUN_0010b6f0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (expression_statement "iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);" (assignment_expression "iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4)" identifier = (call_expression "FUN_00108c00(param_1,param_2,param_3,param_4)" identifier (argument_list "(param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier )))) ;) (return_statement "return iVar12;" return identifier ;) })) (expression_statement "local_28 = (int *)0x0;" (assignment_expression "local_28 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "FUN_0007f630(param_2,&local_28);" (call_expression "FUN_0007f630(param_2,&local_28)" identifier (argument_list "(param_2,&local_28)" ( identifier , (pointer_expression "&local_28" & identifier) ))) ;) (expression_statement "piVar21 = local_24;" (assignment_expression "piVar21 = local_24" identifier = identifier) ;) (expression_statement "piVar17 = local_28;" (assignment_expression "piVar17 = local_28" identifier = identifier) ;) (expression_statement "uVar18 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar18 = *(undefined4 *)(param_1 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = (int)local_24 - (int)local_28;" (assignment_expression "iVar12 = (int)local_24 - (int)local_28" identifier = (binary_expression "(int)local_24 - (int)local_28" (cast_expression "(int)local_24" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar12 < 0x7ffffffd) {\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }\n  else {\n    iVar12 = 0x1fffffff;\n  }" if (parenthesized_expression "(iVar12 < 0x7ffffffd)" ( (binary_expression "iVar12 < 0x7ffffffd" identifier < number_literal) )) (compound_statement "{\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }" { (if_statement "if (iVar12 < 1) goto LAB_0010d4d8;" if (parenthesized_expression "(iVar12 < 1)" ( (binary_expression "iVar12 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0010d4d8;" goto statement_identifier ;)) (expression_statement "iVar12 = iVar12 >> 2;" (assignment_expression "iVar12 = iVar12 >> 2" identifier = (binary_expression "iVar12 >> 2" identifier >> number_literal)) ;) }) (else_clause "else {\n    iVar12 = 0x1fffffff;\n  }" else (compound_statement "{\n    iVar12 = 0x1fffffff;\n  }" { (expression_statement "iVar12 = 0x1fffffff;" (assignment_expression "iVar12 = 0x1fffffff" identifier = number_literal) ;) }))) (do_statement "do {\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  } while (iVar12 != 0);" do (compound_statement "{\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  }" { (expression_statement "iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);" (assignment_expression "iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423)" identifier = (call_expression "FUN_0017eb90(iVar12 << 2,&DAT_0023a423)" identifier (argument_list "(iVar12 << 2,&DAT_0023a423)" ( (binary_expression "iVar12 << 2" identifier << number_literal) , (pointer_expression "&DAT_0023a423" & identifier) )))) ;) (if_statement "if (iVar13 != 0) {\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }" { (expression_statement "FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);" (call_expression "FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18)" identifier (argument_list "(piVar17,piVar21,iVar13,iVar12,uVar18)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0010ce6f;" goto statement_identifier ;) })) (expression_statement "iVar12 = iVar12 >> 1;" (assignment_expression "iVar12 = iVar12 >> 1" identifier = (binary_expression "iVar12 >> 1" identifier >> number_literal)) ;) }) while (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_0010d4d8:\n                    \n  FUN_001139b0(piVar17,piVar21,uVar18);" statement_identifier : (expression_statement "FUN_001139b0(piVar17,piVar21,uVar18);" (call_expression "FUN_001139b0(piVar17,piVar21,uVar18)" identifier (argument_list "(piVar17,piVar21,uVar18)" ( identifier , identifier , identifier ))) ;)) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0010ce6f:\n  FUN_00180760(iVar13,&DAT_0023a423);" statement_identifier : (expression_statement "FUN_00180760(iVar13,&DAT_0023a423);" (call_expression "FUN_00180760(iVar13,&DAT_0023a423)" identifier (argument_list "(iVar13,&DAT_0023a423)" ( identifier , (pointer_expression "&DAT_0023a423" & identifier) ))) ;)) (expression_statement "FUN_00108730(param_1,param_2,&local_28);" (call_expression "FUN_00108730(param_1,param_2,&local_28)" identifier (argument_list "(param_1,param_2,&local_28)" ( identifier , identifier , (pointer_expression "&local_28" & identifier) ))) ;) (if_statement "if (*(int *)(DAT_00302378 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }" if (parenthesized_expression "(*(int *)(DAT_00302378 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_00302378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_00302378 + 0xc)" * (cast_expression "(int *)(DAT_00302378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 0xc)" ( (binary_expression "DAT_00302378 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }" { (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378)" identifier (argument_list "("../../gold/parameters.h",0x69,"target",DAT_00302378)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar12 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n                    \n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }" { (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);" (call_expression "FUN_0005f0b0("../../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 ))) ;) })) (expression_statement "local_98 = *(int *)(iVar12 + 0x521c);" (assignment_expression "local_98 = *(int *)(iVar12 + 0x521c)" identifier = (pointer_expression "*(int *)(iVar12 + 0x521c)" * (cast_expression "(int *)(iVar12 + 0x521c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x521c)" ( (binary_expression "iVar12 + 0x521c" identifier + number_literal) ))))) ;) (expression_statement "local_9c = *(int *)(iVar12 + 0x5218);" (assignment_expression "local_9c = *(int *)(iVar12 + 0x5218)" identifier = (pointer_expression "*(int *)(iVar12 + 0x5218)" * (cast_expression "(int *)(iVar12 + 0x5218)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x5218)" ( (binary_expression "iVar12 + 0x5218" identifier + number_literal) ))))) ;) (if_statement "if (local_98 == 0 && local_9c == 0) {\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }" if (parenthesized_expression "(local_98 == 0 && local_9c == 0)" ( (binary_expression "local_98 == 0 && local_9c == 0" (binary_expression "local_98 == 0" identifier == number_literal) && (binary_expression "local_9c == 0" identifier == number_literal)) )) (compound_statement "{\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }" { (expression_statement "iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);" (assignment_expression "iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(DAT_00302378 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(DAT_00302378 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00302378 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_00302378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_00302378 + 0xc)" * (cast_expression "(int *)(DAT_00302378 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 0xc)" ( (binary_expression "DAT_00302378 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_98 = *(int *)(iVar12 + 0x24);" (assignment_expression "local_98 = *(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_9c = *(int *)(iVar12 + 0x20);" (assignment_expression "local_9c = *(int *)(iVar12 + 0x20)" identifier = (pointer_expression "*(int *)(iVar12 + 0x20)" * (cast_expression "(int *)(iVar12 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) ))))) ;) })) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "piVar17 = local_24;" (assignment_expression "piVar17 = local_24" identifier = identifier) ;) (if_statement "if (local_28 == local_24) {\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }" if (parenthesized_expression "(local_28 == local_24)" ( (binary_expression "local_28 == local_24" identifier == identifier) )) (compound_statement "{\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }" { (labeled_statement "LAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }" statement_identifier : (if_statement "if (piVar17 == (int *)0x0) {\n      return local_94;\n    }" if (parenthesized_expression "(piVar17 == (int *)0x0)" ( (binary_expression "piVar17 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return local_94;\n    }" { (return_statement "return local_94;" return identifier ;) }))) (expression_statement "FUN_001807a0(piVar17);" (call_expression "FUN_001807a0(piVar17)" identifier (argument_list "(piVar17)" ( identifier ))) ;) (return_statement "return local_94;" return identifier ;) })) (expression_statement "piVar17 = (int *)*local_28;" (assignment_expression "piVar17 = (int *)*local_28" identifier = (cast_expression "(int *)*local_28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_28" * identifier))) ;) (expression_statement "bVar1 = *(byte *)(piVar17 + 7);" (assignment_expression "bVar1 = *(byte *)(piVar17 + 7)" identifier = (pointer_expression "*(byte *)(piVar17 + 7)" * (cast_expression "(byte *)(piVar17 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 7)" ( (binary_expression "piVar17 + 7" identifier + number_literal) ))))) ;) (if_statement "if ((bVar1 & 1) != 0) {\n    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\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    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\n  }" { (expression_statement "local_7d = 0;" (assignment_expression "local_7d = 0" identifier = number_literal) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_34 = bVar1 & 1;" (assignment_expression "local_34 = bVar1 & 1" identifier = (binary_expression "bVar1 & 1" identifier & number_literal)) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);" (assignment_expression "lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1)" identifier = (call_expression "CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1)" identifier (argument_list "(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1)" ( (binary_expression "local_98 + -1 + (uint)(local_9c != 0)" (binary_expression "local_98 + -1" identifier + number_literal) + (call_expression "(uint)(local_9c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c != 0)" ( (binary_expression "local_9c != 0" identifier != number_literal) )))) , (binary_expression "local_9c + -1" identifier + number_literal) )))) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = -(local_98 + (uint)(local_9c != 0));" (assignment_expression "uVar19 = -(local_98 + (uint)(local_9c != 0))" identifier = (unary_expression "-(local_98 + (uint)(local_9c != 0))" - (parenthesized_expression "(local_98 + (uint)(local_9c != 0))" ( (binary_expression "local_98 + (uint)(local_9c != 0)" identifier + (call_expression "(uint)(local_9c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c != 0)" ( (binary_expression "local_9c != 0" identifier != number_literal) )))) )))) ;) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) (expression_statement "piVar21 = local_28;" (assignment_expression "piVar21 = local_28" identifier = identifier) ;) (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);" do (compound_statement "{\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    }" { (expression_statement "lVar9 = CONCAT44(local_78,local_7c);" (assignment_expression "lVar9 = CONCAT44(local_78,local_7c)" identifier = (call_expression "CONCAT44(local_78,local_7c)" identifier (argument_list "(local_78,local_7c)" ( identifier , identifier )))) ;) (expression_statement "local_7c = (int)*(longlong *)(piVar17 + 1);" (assignment_expression "local_7c = (int)*(longlong *)(piVar17 + 1)" identifier = (cast_expression "(int)*(longlong *)(piVar17 + 1)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(longlong *)(piVar17 + 1)" * (cast_expression "(longlong *)(piVar17 + 1)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 1)" ( (binary_expression "piVar17 + 1" identifier + number_literal) )))))) ;) (expression_statement "local_78 = piVar17[2];" (assignment_expression "local_78 = piVar17[2]" identifier = (subscript_expression "piVar17[2]" identifier [ number_literal ])) ;) (expression_statement "lVar6 = *(longlong *)(piVar17 + 1);" (assignment_expression "lVar6 = *(longlong *)(piVar17 + 1)" identifier = (pointer_expression "*(longlong *)(piVar17 + 1)" * (cast_expression "(longlong *)(piVar17 + 1)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 1)" ( (binary_expression "piVar17 + 1" identifier + number_literal) ))))) ;) (if_statement "if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }" if (parenthesized_expression "(*(code **)(*piVar17 + 0x10) == FUN_00088ef0)" ( (binary_expression "*(code **)(*piVar17 + 0x10) == FUN_00088ef0" (pointer_expression "*(code **)(*piVar17 + 0x10)" * (cast_expression "(code **)(*piVar17 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar17 + 0x10)" ( (binary_expression "*piVar17 + 0x10" (pointer_expression "*piVar17" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }" { (expression_statement "bVar10 = *(byte *)(piVar17 + 0x24) >> 7;" (assignment_expression "bVar10 = *(byte *)(piVar17 + 0x24) >> 7" identifier = (binary_expression "*(byte *)(piVar17 + 0x24) >> 7" (pointer_expression "*(byte *)(piVar17 + 0x24)" * (cast_expression "(byte *)(piVar17 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 0x24)" ( (binary_expression "piVar17 + 0x24" identifier + number_literal) )))) >> number_literal)) ;) }) (else_clause "else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }" else (compound_statement "{\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }" { (expression_statement "bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);" (assignment_expression "bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17)" identifier = (call_expression "(**(code **)(*piVar17 + 0x10))(piVar17)" (parenthesized_expression "(**(code **)(*piVar17 + 0x10))" ( (pointer_expression "**(code **)(*piVar17 + 0x10)" * (pointer_expression "*(code **)(*piVar17 + 0x10)" * (cast_expression "(code **)(*piVar17 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar17 + 0x10)" ( (binary_expression "*piVar17 + 0x10" (pointer_expression "*piVar17" * identifier) + number_literal) ))))) )) (argument_list "(piVar17)" ( identifier )))) ;) }))) (expression_statement "local_54 = (int *)*piVar21;" (assignment_expression "local_54 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (expression_statement "lVar22 = lVar6;" (assignment_expression "lVar22 = lVar6" identifier = identifier) ;) (if_statement "if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }" if (parenthesized_expression "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }" { (if_statement "if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }" if (parenthesized_expression "(*(code **)(*local_54 + 0x14) == FUN_00089130)" ( (binary_expression "*(code **)(*local_54 + 0x14) == FUN_00089130" (pointer_expression "*(code **)(*local_54 + 0x14)" * (cast_expression "(code **)(*local_54 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_54 + 0x14)" ( (binary_expression "*local_54 + 0x14" (pointer_expression "*local_54" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }" { (if_statement "if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }" if (parenthesized_expression "(-1 < (char)local_54[0x24])" ( (binary_expression "-1 < (char)local_54[0x24]" number_literal < (cast_expression "(char)local_54[0x24]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_54[0x24]" identifier [ number_literal ]))) )) (compound_statement "{\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }" { (expression_statement "FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");" (call_expression "FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address")" identifier (argument_list "("../../gold/output.h",0x107b,"do_load_address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""do_load_address"" " string_content ") ))) ;) })) (expression_statement "lVar22 = *(longlong *)(local_54 + 0xd);" (assignment_expression "lVar22 = *(longlong *)(local_54 + 0xd)" identifier = (pointer_expression "*(longlong *)(local_54 + 0xd)" * (cast_expression "(longlong *)(local_54 + 0xd)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0xd)" ( (binary_expression "local_54 + 0xd" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }" else (compound_statement "{\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }" { (expression_statement "lVar22 = (**(code **)(*local_54 + 0x14))(local_54);" (assignment_expression "lVar22 = (**(code **)(*local_54 + 0x14))(local_54)" identifier = (call_expression "(**(code **)(*local_54 + 0x14))(local_54)" (parenthesized_expression "(**(code **)(*local_54 + 0x14))" ( (pointer_expression "**(code **)(*local_54 + 0x14)" * (pointer_expression "*(code **)(*local_54 + 0x14)" * (cast_expression "(code **)(*local_54 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_54 + 0x14)" ( (binary_expression "*local_54 + 0x14" (pointer_expression "*local_54" * identifier) + number_literal) ))))) )) (argument_list "(local_54)" ( identifier )))) ;) (expression_statement "local_54 = (int *)*piVar21;" (assignment_expression "local_54 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) }))) })) (expression_statement "iVar12 = local_54[3];" (assignment_expression "iVar12 = local_54[3]" identifier = (subscript_expression "local_54[3]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = local_54[0x16];" (assignment_expression "iVar13 = local_54[0x16]" identifier = (subscript_expression "local_54[0x16]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = local_54[4];" (assignment_expression "iVar2 = local_54[4]" identifier = (subscript_expression "local_54[4]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = local_54[0x15];" (assignment_expression "uVar3 = local_54[0x15]" identifier = (subscript_expression "local_54[0x15]" identifier [ number_literal ])) ;) (if_statement "if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }" if (parenthesized_expression "((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9))" ( (binary_expression "(local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)" (parenthesized_expression "(local_50 == 0)" ( (binary_expression "local_50 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar22 - lVar6 != lVar8 - lVar9)" ( (binary_expression "lVar22 - lVar6 != lVar8 - lVar9" (binary_expression "lVar22 - lVar6" identifier - identifier) != (binary_expression "lVar8 - lVar9" identifier - identifier)) ))) )) (compound_statement "{\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }" { (labeled_statement "LAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);" statement_identifier : (expression_statement "local_4c = FUN_0007b810(uVar3,iVar13);" (assignment_expression "local_4c = FUN_0007b810(uVar3,iVar13)" identifier = (call_expression "FUN_0007b810(uVar3,iVar13)" identifier (argument_list "(uVar3,iVar13)" ( identifier , identifier )))) ;)) (labeled_statement "LAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);" statement_identifier : (expression_statement "local_50 = FUN_0007f710(param_2,1,local_4c);" (assignment_expression "local_50 = FUN_0007f710(param_2,1,local_4c)" identifier = (call_expression "FUN_0007f710(param_2,1,local_4c)" identifier (argument_list "(param_2,1,local_4c)" ( identifier , number_literal , identifier )))) ;)) (expression_statement "*(int *)(local_50 + 0x15c) = local_7c;" (assignment_expression "*(int *)(local_50 + 0x15c) = local_7c" (pointer_expression "*(int *)(local_50 + 0x15c)" * (cast_expression "(int *)(local_50 + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x15c)" ( (binary_expression "local_50 + 0x15c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(local_50 + 0x160) = local_78;" (assignment_expression "*(int *)(local_50 + 0x160) = local_78" (pointer_expression "*(int *)(local_50 + 0x160)" * (cast_expression "(int *)(local_50 + 0x160)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x160)" ( (binary_expression "local_50 + 0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(longlong *)(local_50 + 0x164) = lVar22;" (assignment_expression "*(longlong *)(local_50 + 0x164) = lVar22" (pointer_expression "*(longlong *)(local_50 + 0x164)" * (cast_expression "(longlong *)(local_50 + 0x164)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x164)" ( (binary_expression "local_50 + 0x164" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;" (assignment_expression "*(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2" (pointer_expression "*(byte *)(local_50 + 0x19c)" * (cast_expression "(byte *)(local_50 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x19c)" ( (binary_expression "local_50 + 0x19c" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_50 + 0x19c) | 2" (pointer_expression "*(byte *)(local_50 + 0x19c)" * (cast_expression "(byte *)(local_50 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x19c)" ( (binary_expression "local_50 + 0x19c" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }" if (parenthesized_expression "(*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3))" ( (binary_expression "*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)" (binary_expression "*(uint *)(local_50 + 0x180) < param_4" (pointer_expression "*(uint *)(local_50 + 0x180)" * (cast_expression "(uint *)(local_50 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x180)" ( (binary_expression "local_50 + 0x180" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)" (binary_expression "*(uint *)(local_50 + 0x180) - param_4" (pointer_expression "*(uint *)(local_50 + 0x180)" * (cast_expression "(uint *)(local_50 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x180)" ( (binary_expression "local_50 + 0x180" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(local_50 + 0x17c) < param_3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(local_50 + 0x17c) < param_3)" ( (binary_expression "*(uint *)(local_50 + 0x17c) < param_3" (pointer_expression "*(uint *)(local_50 + 0x17c)" * (cast_expression "(uint *)(local_50 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x17c)" ( (binary_expression "local_50 + 0x17c" identifier + number_literal) )))) < identifier) ))))) )) (compound_statement "{\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }" { (expression_statement "*(uint *)(local_50 + 0x17c) = param_3;" (assignment_expression "*(uint *)(local_50 + 0x17c) = param_3" (pointer_expression "*(uint *)(local_50 + 0x17c)" * (cast_expression "(uint *)(local_50 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x17c)" ( (binary_expression "local_50 + 0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(local_50 + 0x180) = param_4;" (assignment_expression "*(uint *)(local_50 + 0x180) = param_4" (pointer_expression "*(uint *)(local_50 + 0x180)" * (cast_expression "(uint *)(local_50 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_50 + 0x180)" ( (binary_expression "local_50 + 0x180" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "local_7d = 0;" (assignment_expression "local_7d = 0" identifier = number_literal) ;) (expression_statement "local_34 = bVar1 & 1;" (assignment_expression "local_34 = bVar1 & 1" identifier = (binary_expression "bVar1 & 1" identifier & number_literal)) ;) (if_statement "if (local_90 == 0) {\n          local_90 = local_50;\n        }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n          local_90 = local_50;\n        }" { (expression_statement "local_90 = local_50;" (assignment_expression "local_90 = local_50" identifier = identifier) ;) })) }) (else_clause "else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }" else (compound_statement "{\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }" { (expression_statement "lVar8 = lVar8 + CONCAT44(local_48,local_4c);" (assignment_expression "lVar8 = lVar8 + CONCAT44(local_48,local_4c)" identifier = (binary_expression "lVar8 + CONCAT44(local_48,local_4c)" identifier + (call_expression "CONCAT44(local_48,local_4c)" identifier (argument_list "(local_48,local_4c)" ( identifier , identifier ))))) ;) (expression_statement "lVar6 = lVar22;" (assignment_expression "lVar6 = lVar22" identifier = identifier) ;) (if_statement "if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }" if (parenthesized_expression "(local_98 != 0 || local_9c != 0)" ( (binary_expression "local_98 != 0 || local_9c != 0" (binary_expression "local_98 != 0" identifier != number_literal) || (binary_expression "local_9c != 0" identifier != number_literal)) )) (compound_statement "{\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }" { (expression_statement "lVar8 = lVar8 + lVar7;" (assignment_expression "lVar8 = lVar8 + lVar7" identifier = (binary_expression "lVar8 + lVar7" identifier + identifier)) ;) (expression_statement "lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);" (assignment_expression "lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8)" identifier (argument_list "((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8)" ( (binary_expression "(uint)((ulonglong)lVar8 >> 0x20) & uVar19" (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) ))) & identifier) , (binary_expression "-local_9c & (uint)lVar8" (unary_expression "-local_9c" - identifier) & (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "lVar6 = lVar22 + lVar7;" (assignment_expression "lVar6 = lVar22 + lVar7" identifier = (binary_expression "lVar22 + lVar7" identifier + identifier)) ;) (expression_statement "lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);" (assignment_expression "lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6)" identifier = (call_expression "CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6)" identifier (argument_list "((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6)" ( (binary_expression "(uint)((ulonglong)lVar6 >> 0x20) & uVar19" (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_9c & (uint)lVar6" (unary_expression "-local_9c" - identifier) & (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) })) (expression_statement "local_48 = (uint)((ulonglong)lVar8 >> 0x20);" (assignment_expression "local_48 = (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_4c = (uint)lVar8;" (assignment_expression "local_4c = (uint)lVar8" identifier = (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar14 = (uint)((ulonglong)lVar6 >> 0x20);" (assignment_expression "uVar14 = (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) )))) ;) (if_statement "if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;" if (parenthesized_expression "(local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))" ( (binary_expression "local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6)" (binary_expression "local_48 < uVar14" identifier < identifier) || (binary_expression "local_48 - uVar14 < (uint)(local_4c < (uint)lVar6)" (binary_expression "local_48 - uVar14" identifier - identifier) < (call_expression "(uint)(local_4c < (uint)lVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_4c < (uint)lVar6)" ( (binary_expression "local_4c < (uint)lVar6" identifier < (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (goto_statement "goto LAB_0010d018;" goto statement_identifier ;)) (if_statement "if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }" if (parenthesized_expression "(local_7d != 0)" ( (binary_expression "local_7d != 0" identifier != number_literal) )) (compound_statement "{\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }" { (if_statement "if (local_54[0x14] != 8) goto LAB_0010d018;" if (parenthesized_expression "(local_54[0x14] != 8)" ( (binary_expression "local_54[0x14] != 8" (subscript_expression "local_54[0x14]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0010d018;" goto statement_identifier ;)) (if_statement "if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;" if (parenthesized_expression "((uVar3 & 0x400) == 0)" ( (binary_expression "(uVar3 & 0x400) == 0" (parenthesized_expression "(uVar3 & 0x400)" ( (binary_expression "uVar3 & 0x400" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0010d2c0;" goto statement_identifier ;)) (expression_statement "local_4c = FUN_0007b810(uVar3,iVar13);" (assignment_expression "local_4c = FUN_0007b810(uVar3,iVar13)" identifier = (call_expression "FUN_0007b810(uVar3,iVar13)" identifier (argument_list "(uVar3,iVar13)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_0010d029;" goto statement_identifier ;) })) (labeled_statement "LAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }" statement_identifier : (if_statement "if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }" if (parenthesized_expression "((local_34 != 0) && ((uVar3 & 1) != 0))" ( (binary_expression "(local_34 != 0) && ((uVar3 & 1) != 0)" (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar3 & 1) != 0)" ( (binary_expression "(uVar3 & 1) != 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }" { (if_statement "if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }" if (parenthesized_expression "(*(int *)(DAT_00302378 + 8) == 0)" ( (binary_expression "*(int *)(DAT_00302378 + 8) == 0" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }" { (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",piVar21)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (expression_statement "local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);" (assignment_expression "local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d)" identifier = (pointer_expression "*(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d)" * (cast_expression "(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00302378 + 8) + 0x253d)" ( (binary_expression "*(int *)(DAT_00302378 + 8) + 0x253d" (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (local_34 == 0) goto LAB_0010d018;" if (parenthesized_expression "(local_34 == 0)" ( (binary_expression "local_34 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010d018;" goto statement_identifier ;)) }))) (expression_statement "local_4c = FUN_0007b810(uVar3,iVar13);" (assignment_expression "local_4c = FUN_0007b810(uVar3,iVar13)" identifier = (call_expression "FUN_0007b810(uVar3,iVar13)" identifier (argument_list "(uVar3,iVar13)" ( identifier , identifier )))) ;) }))) (expression_statement "FUN_000bfab0(local_50,param_2,*piVar21,local_4c);" (call_expression "FUN_000bfab0(local_50,param_2,*piVar21,local_4c)" identifier (argument_list "(local_50,param_2,*piVar21,local_4c)" ( identifier , identifier , (pointer_expression "*piVar21" * identifier) , identifier ))) ;) (expression_statement "iVar13 = *piVar21;" (assignment_expression "iVar13 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "uVar18 = *(undefined4 *)(iVar13 + 0x58);" (assignment_expression "uVar18 = *(undefined4 *)(iVar13 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(iVar13 + 0x58)" * (cast_expression "(undefined4 *)(iVar13 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x58)" ( (binary_expression "iVar13 + 0x58" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }" if (parenthesized_expression "((*(uint *)(iVar13 + 0x54) & 1) != 0)" ( (binary_expression "(*(uint *)(iVar13 + 0x54) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar13 + 0x54) & 1)" ( (binary_expression "*(uint *)(iVar13 + 0x54) & 1" (pointer_expression "*(uint *)(iVar13 + 0x54)" * (cast_expression "(uint *)(iVar13 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x54)" ( (binary_expression "iVar13 + 0x54" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        local_34 = 0;\n      }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) })) (if_statement "if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar13 + 0x50) == 8)" ( (binary_expression "*(int *)(iVar13 + 0x50) == 8" (pointer_expression "*(int *)(iVar13 + 0x50)" * (cast_expression "(int *)(iVar13 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x50)" ( (binary_expression "iVar13 + 0x50" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }" { (expression_statement "bVar5 = iVar12 != 0 || iVar2 != 0;" (assignment_expression "bVar5 = iVar12 != 0 || iVar2 != 0" identifier = (binary_expression "iVar12 != 0 || iVar2 != 0" (binary_expression "iVar12 != 0" identifier != number_literal) || (binary_expression "iVar2 != 0" identifier != number_literal))) ;) (expression_statement "uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);" (assignment_expression "uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5)" identifier = (call_expression "CONCAT31((int3)((uint)uVar18 >> 8),bVar5)" identifier (argument_list "((int3)((uint)uVar18 >> 8),bVar5)" ( (call_expression "(int3)((uint)uVar18 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)uVar18 >> 8)" ( (binary_expression "(uint)uVar18 >> 8" (cast_expression "(uint)uVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , identifier )))) ;) (expression_statement "bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;" (assignment_expression "bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5" identifier = (binary_expression "((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5" (parenthesized_expression "((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1)" ( (binary_expression "(byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1" (call_expression "(byte)(*(uint *)(iVar13 + 0x54) >> 10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(uint *)(iVar13 + 0x54) >> 10)" ( (binary_expression "*(uint *)(iVar13 + 0x54) >> 10" (pointer_expression "*(uint *)(iVar13 + 0x54)" * (cast_expression "(uint *)(iVar13 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x54)" ( (binary_expression "iVar13 + 0x54" identifier + number_literal) )))) >> number_literal) ))) ^ number_literal) )) & identifier)) ;) (if_statement "if (bVar10 != 0) {\n          local_7d = bVar10;\n        }" if (parenthesized_expression "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          local_7d = bVar10;\n        }" { (expression_statement "local_7d = bVar10;" (assignment_expression "local_7d = bVar10" identifier = identifier) ;) })) })) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) (if_statement "if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }" if (parenthesized_expression "(local_24 == piVar21)" ( (binary_expression "local_24 == piVar21" identifier == identifier) )) (compound_statement "{\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }" { (expression_statement "piVar17 = local_28;" (assignment_expression "piVar17 = local_28" identifier = identifier) ;) (if_statement "if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }" if (parenthesized_expression "(local_90 != 0)" ( (binary_expression "local_90 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }" { (expression_statement "iVar12 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_00302378 + 8)" identifier = (pointer_expression "*(int *)(DAT_00302378 + 8)" * (cast_expression "(int *)(DAT_00302378 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00302378 + 8)" ( (binary_expression "DAT_00302378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }" { (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18)" identifier (argument_list "("../../gold/parameters.h",0x5c,"options",uVar18)" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") , identifier ))) ;) })) (if_statement "if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\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            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }" { (expression_statement "uVar15 = FUN_001085c0(param_1,param_2);" (assignment_expression "uVar15 = FUN_001085c0(param_1,param_2)" identifier = (call_expression "FUN_001085c0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "uVar19 = *(uint *)(local_90 + 0x15c);" (assignment_expression "uVar19 = *(uint *)(local_90 + 0x15c)" identifier = (pointer_expression "*(uint *)(local_90 + 0x15c)" * (cast_expression "(uint *)(local_90 + 0x15c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x15c)" ( (binary_expression "local_90 + 0x15c" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(local_90 + 0x160);" (assignment_expression "uVar3 = *(uint *)(local_90 + 0x160)" identifier = (pointer_expression "*(uint *)(local_90 + 0x160)" * (cast_expression "(uint *)(local_90 + 0x160)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x160)" ( (binary_expression "local_90 + 0x160" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(local_90 + 0x164);" (assignment_expression "uVar14 = *(uint *)(local_90 + 0x164)" identifier = (pointer_expression "*(uint *)(local_90 + 0x164)" * (cast_expression "(uint *)(local_90 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x164)" ( (binary_expression "local_90 + 0x164" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(uint *)(local_90 + 0x168);" (assignment_expression "uVar4 = *(uint *)(local_90 + 0x168)" identifier = (pointer_expression "*(uint *)(local_90 + 0x168)" * (cast_expression "(uint *)(local_90 + 0x168)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x168)" ( (binary_expression "local_90 + 0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);" (assignment_expression "uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15)" identifier = (call_expression "FUN_00108650(param_1,uVar14,uVar4,uVar15)" identifier (argument_list "(param_1,uVar14,uVar4,uVar15)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar20 = (uint)((ulonglong)uVar23 >> 0x20);" (assignment_expression "uVar20 = (uint)((ulonglong)uVar23 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar23 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar23 >> 0x20)" ( (binary_expression "(ulonglong)uVar23 >> 0x20" (cast_expression "(ulonglong)uVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar16 = (uint)uVar23;" (assignment_expression "uVar16 = (uint)uVar23" identifier = (cast_expression "(uint)uVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "piVar17 = local_28;" (assignment_expression "piVar17 = local_28" identifier = identifier) ;) (if_statement "if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }" if (parenthesized_expression "((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15))" ( (binary_expression "(uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)" (parenthesized_expression "(uVar4 & local_98 + -1 + (uint)(local_9c != 0))" ( (binary_expression "uVar4 & local_98 + -1 + (uint)(local_9c != 0)" identifier & (binary_expression "local_98 + -1 + (uint)(local_9c != 0)" (binary_expression "local_98 + -1" identifier + number_literal) + (call_expression "(uint)(local_9c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_9c != 0)" ( (binary_expression "local_9c != 0" identifier != number_literal) ))))) )) < (call_expression "(uint)((uVar14 & local_9c - 1U) < uVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar14 & local_9c - 1U) < uVar15)" ( (binary_expression "(uVar14 & local_9c - 1U) < uVar15" (parenthesized_expression "(uVar14 & local_9c - 1U)" ( (binary_expression "uVar14 & local_9c - 1U" identifier & (binary_expression "local_9c - 1U" identifier - number_literal)) )) < identifier) )))) )) (compound_statement "{\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }" { (if_statement "if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }" if (parenthesized_expression "((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20))" ( (binary_expression "(uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)" (parenthesized_expression "(uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20)" ( (binary_expression "uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20" (binary_expression "uVar20 <= uVar4" identifier <= identifier) && (binary_expression "(uint)(uVar14 < uVar16) <= uVar4 - uVar20" (call_expression "(uint)(uVar14 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar16)" ( (binary_expression "uVar14 < uVar16" identifier < identifier) ))) <= (binary_expression "uVar4 - uVar20" identifier - identifier))) )) && (parenthesized_expression "(uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)" ( (binary_expression "uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20" (binary_expression "uVar20 <= uVar3" identifier <= identifier) && (binary_expression "(uint)(uVar19 < uVar16) <= uVar3 - uVar20" (call_expression "(uint)(uVar19 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar16)" ( (binary_expression "uVar19 < uVar16" identifier < identifier) ))) <= (binary_expression "uVar3 - uVar20" identifier - identifier))) ))) )) (compound_statement "{\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }" { (if_statement "if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }" if (parenthesized_expression "((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0'))" ( (binary_expression "(*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')" (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" ( (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')" ( (comma_expression "cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0'" (assignment_expression "cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23)" identifier = (call_expression "FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23)" identifier (argument_list "(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23)" ( identifier , number_literal , identifier , (binary_expression "uVar14 - uVar16" identifier - identifier) , (binary_expression "(uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (parenthesized_expression "(uVar4 - uVar20)" ( (binary_expression "uVar4 - uVar20" identifier - identifier) )) - (call_expression "(uint)(uVar14 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar16)" ( (binary_expression "uVar14 < uVar16" identifier < identifier) )))) , identifier )))) , (binary_expression "cVar11 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }" { (expression_statement "uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );" (assignment_expression "uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  )" identifier = (call_expression "gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  )" identifier (argument_list "(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  )" ( (string_literal ""creating a segment to contain the file and program headers outside of any MEMORY region"" " string_content ") )))) ;) (expression_statement "FUN_0005ad30(uVar18);" (call_expression "FUN_0005ad30(uVar18)" identifier (argument_list "(uVar18)" ( identifier ))) ;) })) (expression_statement "local_94 = FUN_0007f710(param_2,1,4);" (assignment_expression "local_94 = FUN_0007f710(param_2,1,4)" identifier = (call_expression "FUN_0007f710(param_2,1,4)" identifier (argument_list "(param_2,1,4)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(uint *)(local_94 + 0x15c) = uVar19 - uVar16;" (assignment_expression "*(uint *)(local_94 + 0x15c) = uVar19 - uVar16" (pointer_expression "*(uint *)(local_94 + 0x15c)" * (cast_expression "(uint *)(local_94 + 0x15c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x15c)" ( (binary_expression "local_94 + 0x15c" identifier + number_literal) )))) = (binary_expression "uVar19 - uVar16" identifier - identifier)) ;) (expression_statement "*(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);" (assignment_expression "*(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16)" (pointer_expression "*(uint *)(local_94 + 0x160)" * (cast_expression "(uint *)(local_94 + 0x160)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x160)" ( (binary_expression "local_94 + 0x160" identifier + number_literal) )))) = (binary_expression "(uVar3 - uVar20) - (uint)(uVar19 < uVar16)" (parenthesized_expression "(uVar3 - uVar20)" ( (binary_expression "uVar3 - uVar20" identifier - identifier) )) - (call_expression "(uint)(uVar19 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar16)" ( (binary_expression "uVar19 < uVar16" identifier < identifier) ))))) ;) (expression_statement "*(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;" (assignment_expression "*(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2" (pointer_expression "*(byte *)(local_94 + 0x19c)" * (cast_expression "(byte *)(local_94 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x19c)" ( (binary_expression "local_94 + 0x19c" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_94 + 0x19c) | 2" (pointer_expression "*(byte *)(local_94 + 0x19c)" * (cast_expression "(byte *)(local_94 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x19c)" ( (binary_expression "local_94 + 0x19c" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(uint *)(local_94 + 0x164) = uVar14 - uVar16;" (assignment_expression "*(uint *)(local_94 + 0x164) = uVar14 - uVar16" (pointer_expression "*(uint *)(local_94 + 0x164)" * (cast_expression "(uint *)(local_94 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x164)" ( (binary_expression "local_94 + 0x164" identifier + number_literal) )))) = (binary_expression "uVar14 - uVar16" identifier - identifier)) ;) (expression_statement "*(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);" (assignment_expression "*(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (pointer_expression "*(uint *)(local_94 + 0x168)" * (cast_expression "(uint *)(local_94 + 0x168)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 0x168)" ( (binary_expression "local_94 + 0x168" identifier + number_literal) )))) = (binary_expression "(uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (parenthesized_expression "(uVar4 - uVar20)" ( (binary_expression "uVar4 - uVar20" identifier - identifier) )) - (call_expression "(uint)(uVar14 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar16)" ( (binary_expression "uVar14 < uVar16" identifier < identifier) ))))) ;) (expression_statement "piVar17 = local_28;" (assignment_expression "piVar17 = local_28" identifier = identifier) ;) })) }) (else_clause "else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }" else (compound_statement "{\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }" { (expression_statement "local_94 = local_90;" (assignment_expression "local_94 = local_90" identifier = identifier) ;) (expression_statement "*(uint *)(local_90 + 0x15c) = uVar19 - uVar16;" (assignment_expression "*(uint *)(local_90 + 0x15c) = uVar19 - uVar16" (pointer_expression "*(uint *)(local_90 + 0x15c)" * (cast_expression "(uint *)(local_90 + 0x15c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x15c)" ( (binary_expression "local_90 + 0x15c" identifier + number_literal) )))) = (binary_expression "uVar19 - uVar16" identifier - identifier)) ;) (expression_statement "*(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);" (assignment_expression "*(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16)" (pointer_expression "*(uint *)(local_90 + 0x160)" * (cast_expression "(uint *)(local_90 + 0x160)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x160)" ( (binary_expression "local_90 + 0x160" identifier + number_literal) )))) = (binary_expression "(uVar3 - uVar20) - (uint)(uVar19 < uVar16)" (parenthesized_expression "(uVar3 - uVar20)" ( (binary_expression "uVar3 - uVar20" identifier - identifier) )) - (call_expression "(uint)(uVar19 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 < uVar16)" ( (binary_expression "uVar19 < uVar16" identifier < identifier) ))))) ;) (expression_statement "*(uint *)(local_90 + 0x164) = uVar14 - uVar16;" (assignment_expression "*(uint *)(local_90 + 0x164) = uVar14 - uVar16" (pointer_expression "*(uint *)(local_90 + 0x164)" * (cast_expression "(uint *)(local_90 + 0x164)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x164)" ( (binary_expression "local_90 + 0x164" identifier + number_literal) )))) = (binary_expression "uVar14 - uVar16" identifier - identifier)) ;) (expression_statement "*(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;" (assignment_expression "*(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2" (pointer_expression "*(byte *)(local_90 + 0x19c)" * (cast_expression "(byte *)(local_90 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x19c)" ( (binary_expression "local_90 + 0x19c" identifier + number_literal) )))) = (binary_expression "*(byte *)(local_90 + 0x19c) | 2" (pointer_expression "*(byte *)(local_90 + 0x19c)" * (cast_expression "(byte *)(local_90 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x19c)" ( (binary_expression "local_90 + 0x19c" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);" (assignment_expression "*(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (pointer_expression "*(uint *)(local_90 + 0x168)" * (cast_expression "(uint *)(local_90 + 0x168)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + 0x168)" ( (binary_expression "local_90 + 0x168" identifier + number_literal) )))) = (binary_expression "(uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (parenthesized_expression "(uVar4 - uVar20)" ( (binary_expression "uVar4 - uVar20" identifier - identifier) )) - (call_expression "(uint)(uVar14 < uVar16)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar16)" ( (binary_expression "uVar14 < uVar16" identifier < identifier) ))))) ;) }))) })) })) (goto_statement "goto LAB_0010d48b;" goto statement_identifier ;) })) (expression_statement "piVar17 = (int *)*piVar21;" (assignment_expression "piVar17 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (expression_statement "local_4c = iVar12;" (assignment_expression "local_4c = iVar12" identifier = identifier) ;) (expression_statement "local_48 = iVar2;" (assignment_expression "local_48 = iVar2" identifier = identifier) ;) (expression_statement "lVar8 = lVar22;" (assignment_expression "lVar8 = lVar22" identifier = identifier) ;) }) while (parenthesized_expression "((*(byte *)(piVar17 + 7) & 1) != 0)" ( (binary_expression "(*(byte *)(piVar17 + 7) & 1) != 0" (parenthesized_expression "(*(byte *)(piVar17 + 7) & 1)" ( (binary_expression "*(byte *)(piVar17 + 7) & 1" (pointer_expression "*(byte *)(piVar17 + 7)" * (cast_expression "(byte *)(piVar17 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar17 + 7)" ( (binary_expression "piVar17 + 7" identifier + number_literal) )))) & number_literal) )) != number_literal) )) ;) })) (expression_statement "FUN_0005f0b0("../../gold/output.h",0xc5,"address");" (call_expression "FUN_0005f0b0("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 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 IDENT ;) (declaration TYPE (pointer_declarator * 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 ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , 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 (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return 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 (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (return_statement return IDENT ;) })) (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)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = 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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression 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 = (binary_expression IDENT >> LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & 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 (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 ))) ;) })) (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 (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_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 = LIT) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_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) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) != (binary_expression IDENT - IDENT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (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) )))) = (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 (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( 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 + 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 = (binary_expression 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 (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 = (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 IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (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 IDENT & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == 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 (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 == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (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) )))) >> LIT) ))) ^ LIT) )) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 ))) ;) })) (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 , 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 = (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 , 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (binary_expression (binary_expression IDENT + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) )) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & (binary_expression IDENT - LIT)) )) < IDENT) )))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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))) )) && (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 { (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 ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (binary_expression IDENT - IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) , IDENT )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (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) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "int FUN_0010cd10(char *param_1,undefined4 param_2,uint param_3,uint param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  bool bVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  longlong lVar9;\n  byte bVar10;\n  char cVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int *piVar17;\n  undefined4 uVar18;\n  uint uVar19;\n  uint uVar20;\n  int *piVar21;\n  longlong lVar22;\n  undefined8 uVar23;\n  int local_9c;\n  int local_98;\n  int local_94;\n  int local_90;\n  byte local_7d;\n  int local_7c;\n  int local_78;\n  int *local_54;\n  int local_50;\n  uint local_4c;\n  uint local_48;\n  byte local_34;\n  int *local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  if (*param_1 == '\0') {\n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }\n  if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  if (*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {\n    return 0;\n  }\n  if (*(int *)(param_1 + 0x10) != 0) {\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }\n  local_28 = (int *)0x0;\n  local_24 = (int *)0x0;\n  local_20 = 0;\n                    \n  FUN_0007f630(param_2,&local_28);\n  piVar21 = local_24;\n  piVar17 = local_28;\n  uVar18 = *(undefined4 *)(param_1 + 4);\n  iVar12 = (int)local_24 - (int)local_28;\n  if (iVar12 < 0x7ffffffd) {\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }\n  else {\n    iVar12 = 0x1fffffff;\n  }\n  do {\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  } while (iVar12 != 0);\nLAB_0010d4d8:\n                    \n  FUN_001139b0(piVar17,piVar21,uVar18);\n  iVar13 = 0;\nLAB_0010ce6f:\n  FUN_00180760(iVar13,&DAT_0023a423);\n                    \n  FUN_00108730(param_1,param_2,&local_28);\n  if (*(int *)(DAT_00302378 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }\n  iVar12 = *(int *)(DAT_00302378 + 8);\n  if (iVar12 == 0) {\n                    \n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  local_98 = *(int *)(iVar12 + 0x521c);\n  local_9c = *(int *)(iVar12 + 0x5218);\n  if (local_98 == 0 && local_9c == 0) {\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }\n  local_94 = 0;\n  piVar17 = local_24;\n  if (local_28 == local_24) {\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }\n  piVar17 = (int *)*local_28;\n  bVar1 = *(byte *)(piVar17 + 7);\n  if ((bVar1 & 1) != 0) {\n    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\n  }\n                    \n  FUN_0005f0b0("../../gold/output.h",0xc5,"address");\n}" (primitive_type "int") (function_declarator "FUN_0010cd10(char *param_1,undefined4 param_2,uint param_3,uint param_4)" (identifier "FUN_0010cd10") (parameter_list "(char *param_1,undefined4 param_2,uint param_3,uint param_4)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  bool bVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  longlong lVar9;\n  byte bVar10;\n  char cVar11;\n  int iVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  uint uVar16;\n  int *piVar17;\n  undefined4 uVar18;\n  uint uVar19;\n  uint uVar20;\n  int *piVar21;\n  longlong lVar22;\n  undefined8 uVar23;\n  int local_9c;\n  int local_98;\n  int local_94;\n  int local_90;\n  byte local_7d;\n  int local_7c;\n  int local_78;\n  int *local_54;\n  int local_50;\n  uint local_4c;\n  uint local_48;\n  byte local_34;\n  int *local_28;\n  int *local_24;\n  undefined4 local_20;\n  \n  if (*param_1 == '\0') {\n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }\n  if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  if (*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {\n    return 0;\n  }\n  if (*(int *)(param_1 + 0x10) != 0) {\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }\n  local_28 = (int *)0x0;\n  local_24 = (int *)0x0;\n  local_20 = 0;\n                    \n  FUN_0007f630(param_2,&local_28);\n  piVar21 = local_24;\n  piVar17 = local_28;\n  uVar18 = *(undefined4 *)(param_1 + 4);\n  iVar12 = (int)local_24 - (int)local_28;\n  if (iVar12 < 0x7ffffffd) {\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }\n  else {\n    iVar12 = 0x1fffffff;\n  }\n  do {\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  } while (iVar12 != 0);\nLAB_0010d4d8:\n                    \n  FUN_001139b0(piVar17,piVar21,uVar18);\n  iVar13 = 0;\nLAB_0010ce6f:\n  FUN_00180760(iVar13,&DAT_0023a423);\n                    \n  FUN_00108730(param_1,param_2,&local_28);\n  if (*(int *)(DAT_00302378 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }\n  iVar12 = *(int *)(DAT_00302378 + 8);\n  if (iVar12 == 0) {\n                    \n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }\n  local_98 = *(int *)(iVar12 + 0x521c);\n  local_9c = *(int *)(iVar12 + 0x5218);\n  if (local_98 == 0 && local_9c == 0) {\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }\n  local_94 = 0;\n  piVar17 = local_24;\n  if (local_28 == local_24) {\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }\n  piVar17 = (int *)*local_28;\n  bVar1 = *(byte *)(piVar17 + 7);\n  if ((bVar1 & 1) != 0) {\n    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\n  }\n                    \n  FUN_0005f0b0("../../gold/output.h",0xc5,"address");\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "longlong lVar6;" (type_identifier "longlong") (identifier "lVar6") (; ";")) (declaration "longlong lVar7;" (type_identifier "longlong") (identifier "lVar7") (; ";")) (declaration "longlong lVar8;" (type_identifier "longlong") (identifier "lVar8") (; ";")) (declaration "longlong lVar9;" (type_identifier "longlong") (identifier "lVar9") (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "char cVar11;" (primitive_type "char") (identifier "cVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "undefined4 uVar18;" (type_identifier "undefined4") (identifier "uVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "longlong lVar22;" (type_identifier "longlong") (identifier "lVar22") (; ";")) (declaration "undefined8 uVar23;" (type_identifier "undefined8") (identifier "uVar23") (; ";")) (declaration "int local_9c;" (primitive_type "int") (identifier "local_9c") (; ";")) (declaration "int local_98;" (primitive_type "int") (identifier "local_98") (; ";")) (declaration "int local_94;" (primitive_type "int") (identifier "local_94") (; ";")) (declaration "int local_90;" (primitive_type "int") (identifier "local_90") (; ";")) (declaration "byte local_7d;" (type_identifier "byte") (identifier "local_7d") (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "int local_78;" (primitive_type "int") (identifier "local_78") (; ";")) (declaration "int *local_54;" (primitive_type "int") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "uint local_48;" (type_identifier "uint") (identifier "local_48") (; ";")) (declaration "byte local_34;" (type_identifier "byte") (identifier "local_34") (; ";")) (declaration "int *local_28;" (primitive_type "int") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "int *local_24;" (primitive_type "int") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (if_statement "if (*param_1 == '\0') {\n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }" (if "if") (parenthesized_expression "(*param_1 == '\0')" (( "(") (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);\n  }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);" (call_expression "FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/script-sections.cc",0xf83,"create_segments",param_1)" (( "(") (string_literal ""../../gold/script-sections.cc"" (" """) (string_content "../../gold/script-sections.cc") (" """)) (, ",") (number_literal "0xf83") (, ",") (string_literal ""create_segments"" (" """) (string_content "create_segments") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_00302378 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_00302378 + 8) == 0" (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0)" (identifier "FUN_0005f0b0") (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 *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {\n    return 0;\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0'" (pointer_expression "*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d)" (* "*") (cast_expression "(char *)(*(int *)(DAT_00302378 + 8) + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00302378 + 8) + 0x318d)" (( "(") (binary_expression "*(int *)(DAT_00302378 + 8) + 0x318d" (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x318d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x10) != 0) {\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) != 0" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0010b6f0(param_1,param_2);\n    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);\n    return iVar12;\n  }" ({ "{") (expression_statement "FUN_0010b6f0(param_1,param_2);" (call_expression "FUN_0010b6f0(param_1,param_2)" (identifier "FUN_0010b6f0") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);" (assignment_expression "iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4)" (identifier "iVar12") (= "=") (call_expression "FUN_00108c00(param_1,param_2,param_3,param_4)" (identifier "FUN_00108c00") (argument_list "(param_1,param_2,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")")))) (; ";")) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (} "}"))) (expression_statement "local_28 = (int *)0x0;" (assignment_expression "local_28 = (int *)0x0" (identifier "local_28") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" (identifier "local_24") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0007f630(param_2,&local_28);" (call_expression "FUN_0007f630(param_2,&local_28)" (identifier "FUN_0007f630") (argument_list "(param_2,&local_28)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")"))) (; ";")) (expression_statement "piVar21 = local_24;" (assignment_expression "piVar21 = local_24" (identifier "piVar21") (= "=") (identifier "local_24")) (; ";")) (expression_statement "piVar17 = local_28;" (assignment_expression "piVar17 = local_28" (identifier "piVar17") (= "=") (identifier "local_28")) (; ";")) (expression_statement "uVar18 = *(undefined4 *)(param_1 + 4);" (assignment_expression "uVar18 = *(undefined4 *)(param_1 + 4)" (identifier "uVar18") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar12 = (int)local_24 - (int)local_28;" (assignment_expression "iVar12 = (int)local_24 - (int)local_28" (identifier "iVar12") (= "=") (binary_expression "(int)local_24 - (int)local_28" (cast_expression "(int)local_24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_24")) (- "-") (cast_expression "(int)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_28")))) (; ";")) (if_statement "if (iVar12 < 0x7ffffffd) {\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }\n  else {\n    iVar12 = 0x1fffffff;\n  }" (if "if") (parenthesized_expression "(iVar12 < 0x7ffffffd)" (( "(") (binary_expression "iVar12 < 0x7ffffffd" (identifier "iVar12") (< "<") (number_literal "0x7ffffffd")) () ")")) (compound_statement "{\n    if (iVar12 < 1) goto LAB_0010d4d8;\n    iVar12 = iVar12 >> 2;\n  }" ({ "{") (if_statement "if (iVar12 < 1) goto LAB_0010d4d8;" (if "if") (parenthesized_expression "(iVar12 < 1)" (( "(") (binary_expression "iVar12 < 1" (identifier "iVar12") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0010d4d8;" (goto "goto") (statement_identifier "LAB_0010d4d8") (; ";"))) (expression_statement "iVar12 = iVar12 >> 2;" (assignment_expression "iVar12 = iVar12 >> 2" (identifier "iVar12") (= "=") (binary_expression "iVar12 >> 2" (identifier "iVar12") (>> ">>") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n    iVar12 = 0x1fffffff;\n  }" (else "else") (compound_statement "{\n    iVar12 = 0x1fffffff;\n  }" ({ "{") (expression_statement "iVar12 = 0x1fffffff;" (assignment_expression "iVar12 = 0x1fffffff" (identifier "iVar12") (= "=") (number_literal "0x1fffffff")) (; ";")) (} "}")))) (do_statement "do {\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  } while (iVar12 != 0);" (do "do") (compound_statement "{\n    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);\n    if (iVar13 != 0) {\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }\n    iVar12 = iVar12 >> 1;\n  }" ({ "{") (expression_statement "iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);" (assignment_expression "iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423)" (identifier "iVar13") (= "=") (call_expression "FUN_0017eb90(iVar12 << 2,&DAT_0023a423)" (identifier "FUN_0017eb90") (argument_list "(iVar12 << 2,&DAT_0023a423)" (( "(") (binary_expression "iVar12 << 2" (identifier "iVar12") (<< "<<") (number_literal "2")) (, ",") (pointer_expression "&DAT_0023a423" (& "&") (identifier "DAT_0023a423")) () ")")))) (; ";")) (if_statement "if (iVar13 != 0) {\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);\n      goto LAB_0010ce6f;\n    }" ({ "{") (expression_statement "FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);" (call_expression "FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18)" (identifier "FUN_001142e0") (argument_list "(piVar17,piVar21,iVar13,iVar12,uVar18)" (( "(") (identifier "piVar17") (, ",") (identifier "piVar21") (, ",") (identifier "iVar13") (, ",") (identifier "iVar12") (, ",") (identifier "uVar18") () ")"))) (; ";")) (goto_statement "goto LAB_0010ce6f;" (goto "goto") (statement_identifier "LAB_0010ce6f") (; ";")) (} "}"))) (expression_statement "iVar12 = iVar12 >> 1;" (assignment_expression "iVar12 = iVar12 >> 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 >> 1" (identifier "iVar12") (>> ">>") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_0010d4d8:\n                    \n  FUN_001139b0(piVar17,piVar21,uVar18);" (statement_identifier "LAB_0010d4d8") (: ":") (expression_statement "FUN_001139b0(piVar17,piVar21,uVar18);" (call_expression "FUN_001139b0(piVar17,piVar21,uVar18)" (identifier "FUN_001139b0") (argument_list "(piVar17,piVar21,uVar18)" (( "(") (identifier "piVar17") (, ",") (identifier "piVar21") (, ",") (identifier "uVar18") () ")"))) (; ";"))) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0010ce6f:\n  FUN_00180760(iVar13,&DAT_0023a423);" (statement_identifier "LAB_0010ce6f") (: ":") (expression_statement "FUN_00180760(iVar13,&DAT_0023a423);" (call_expression "FUN_00180760(iVar13,&DAT_0023a423)" (identifier "FUN_00180760") (argument_list "(iVar13,&DAT_0023a423)" (( "(") (identifier "iVar13") (, ",") (pointer_expression "&DAT_0023a423" (& "&") (identifier "DAT_0023a423")) () ")"))) (; ";"))) (expression_statement "FUN_00108730(param_1,param_2,&local_28);" (call_expression "FUN_00108730(param_1,param_2,&local_28)" (identifier "FUN_00108730") (argument_list "(param_1,param_2,&local_28)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")"))) (; ";")) (if_statement "if (*(int *)(DAT_00302378 + 0xc) == 0) {\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_00302378 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_00302378 + 0xc) == 0" (pointer_expression "*(int *)(DAT_00302378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_00302378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 0xc)" (( "(") (binary_expression "DAT_00302378 + 0xc" (identifier "DAT_00302378") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);\n  }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/parameters.h",0x69,"target",DAT_00302378)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (identifier "DAT_00302378") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar12 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_00302378 + 8)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar12 == 0) {\n                    \n                    \n    FUN_0005f0b0("../../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                    \n    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);\n  }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0)" (identifier "FUN_0005f0b0") (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") () ")"))) (; ";")) (} "}"))) (expression_statement "local_98 = *(int *)(iVar12 + 0x521c);" (assignment_expression "local_98 = *(int *)(iVar12 + 0x521c)" (identifier "local_98") (= "=") (pointer_expression "*(int *)(iVar12 + 0x521c)" (* "*") (cast_expression "(int *)(iVar12 + 0x521c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x521c)" (( "(") (binary_expression "iVar12 + 0x521c" (identifier "iVar12") (+ "+") (number_literal "0x521c")) () ")"))))) (; ";")) (expression_statement "local_9c = *(int *)(iVar12 + 0x5218);" (assignment_expression "local_9c = *(int *)(iVar12 + 0x5218)" (identifier "local_9c") (= "=") (pointer_expression "*(int *)(iVar12 + 0x5218)" (* "*") (cast_expression "(int *)(iVar12 + 0x5218)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x5218)" (( "(") (binary_expression "iVar12 + 0x5218" (identifier "iVar12") (+ "+") (number_literal "0x5218")) () ")"))))) (; ";")) (if_statement "if (local_98 == 0 && local_9c == 0) {\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }" (if "if") (parenthesized_expression "(local_98 == 0 && local_9c == 0)" (( "(") (binary_expression "local_98 == 0 && local_9c == 0" (binary_expression "local_98 == 0" (identifier "local_98") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_9c == 0" (identifier "local_9c") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);\n    local_98 = *(int *)(iVar12 + 0x24);\n    local_9c = *(int *)(iVar12 + 0x20);\n  }" ({ "{") (expression_statement "iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);" (assignment_expression "iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(*(int *)(DAT_00302378 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_00302378 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00302378 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_00302378 + 0xc) + 4" (pointer_expression "*(int *)(DAT_00302378 + 0xc)" (* "*") (cast_expression "(int *)(DAT_00302378 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 0xc)" (( "(") (binary_expression "DAT_00302378 + 0xc" (identifier "DAT_00302378") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_98 = *(int *)(iVar12 + 0x24);" (assignment_expression "local_98 = *(int *)(iVar12 + 0x24)" (identifier "local_98") (= "=") (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_9c = *(int *)(iVar12 + 0x20);" (assignment_expression "local_9c = *(int *)(iVar12 + 0x20)" (identifier "local_9c") (= "=") (pointer_expression "*(int *)(iVar12 + 0x20)" (* "*") (cast_expression "(int *)(iVar12 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar17 = local_24;" (assignment_expression "piVar17 = local_24" (identifier "piVar17") (= "=") (identifier "local_24")) (; ";")) (if_statement "if (local_28 == local_24) {\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }" (if "if") (parenthesized_expression "(local_28 == local_24)" (( "(") (binary_expression "local_28 == local_24" (identifier "local_28") (== "==") (identifier "local_24")) () ")")) (compound_statement "{\nLAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }\n    FUN_001807a0(piVar17);\n    return local_94;\n  }" ({ "{") (labeled_statement "LAB_0010d48b:\n    if (piVar17 == (int *)0x0) {\n      return local_94;\n    }" (statement_identifier "LAB_0010d48b") (: ":") (if_statement "if (piVar17 == (int *)0x0) {\n      return local_94;\n    }" (if "if") (parenthesized_expression "(piVar17 == (int *)0x0)" (( "(") (binary_expression "piVar17 == (int *)0x0" (identifier "piVar17") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return local_94;\n    }" ({ "{") (return_statement "return local_94;" (return "return") (identifier "local_94") (; ";")) (} "}")))) (expression_statement "FUN_001807a0(piVar17);" (call_expression "FUN_001807a0(piVar17)" (identifier "FUN_001807a0") (argument_list "(piVar17)" (( "(") (identifier "piVar17") () ")"))) (; ";")) (return_statement "return local_94;" (return "return") (identifier "local_94") (; ";")) (} "}"))) (expression_statement "piVar17 = (int *)*local_28;" (assignment_expression "piVar17 = (int *)*local_28" (identifier "piVar17") (= "=") (cast_expression "(int *)*local_28" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_28" (* "*") (identifier "local_28")))) (; ";")) (expression_statement "bVar1 = *(byte *)(piVar17 + 7);" (assignment_expression "bVar1 = *(byte *)(piVar17 + 7)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(piVar17 + 7)" (* "*") (cast_expression "(byte *)(piVar17 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar17 + 7)" (( "(") (binary_expression "piVar17 + 7" (identifier "piVar17") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 1) != 0) {\n    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\n  }" (if "if") (parenthesized_expression "((bVar1 & 1) != 0)" (( "(") (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_7d = 0;\n    local_50 = 0;\n    local_34 = bVar1 & 1;\n    local_4c = 0;\n    local_48 = 0;\n    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);\n    local_90 = 0;\n    uVar19 = -(local_98 + (uint)(local_9c != 0));\n    local_7c = 0;\n    local_78 = 0;\n    piVar21 = local_28;\n    lVar8 = 0;\n    do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);\n  }" ({ "{") (expression_statement "local_7d = 0;" (assignment_expression "local_7d = 0" (identifier "local_7d") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = bVar1 & 1;" (assignment_expression "local_34 = bVar1 & 1" (identifier "local_34") (= "=") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1"))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);" (assignment_expression "lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1)" (identifier "lVar7") (= "=") (call_expression "CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1)" (identifier "CONCAT44") (argument_list "(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1)" (( "(") (binary_expression "local_98 + -1 + (uint)(local_9c != 0)" (binary_expression "local_98 + -1" (identifier "local_98") (+ "+") (number_literal "-1")) (+ "+") (call_expression "(uint)(local_9c != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_9c != 0)" (( "(") (binary_expression "local_9c != 0" (identifier "local_9c") (!= "!=") (number_literal "0")) () ")")))) (, ",") (binary_expression "local_9c + -1" (identifier "local_9c") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = -(local_98 + (uint)(local_9c != 0));" (assignment_expression "uVar19 = -(local_98 + (uint)(local_9c != 0))" (identifier "uVar19") (= "=") (unary_expression "-(local_98 + (uint)(local_9c != 0))" (- "-") (parenthesized_expression "(local_98 + (uint)(local_9c != 0))" (( "(") (binary_expression "local_98 + (uint)(local_9c != 0)" (identifier "local_98") (+ "+") (call_expression "(uint)(local_9c != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_9c != 0)" (( "(") (binary_expression "local_9c != 0" (identifier "local_9c") (!= "!=") (number_literal "0")) () ")")))) () ")")))) (; ";")) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" (identifier "local_7c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" (identifier "local_78") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar21 = local_28;" (assignment_expression "piVar21 = local_28" (identifier "piVar21") (= "=") (identifier "local_28")) (; ";")) (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" (identifier "lVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    } while ((*(byte *)(piVar17 + 7) & 1) != 0);" (do "do") (compound_statement "{\n      lVar9 = CONCAT44(local_78,local_7c);\n      local_7c = (int)*(longlong *)(piVar17 + 1);\n      local_78 = piVar17[2];\n      lVar6 = *(longlong *)(piVar17 + 1);\n      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }\n      local_54 = (int *)*piVar21;\n      lVar22 = lVar6;\n      if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }\n      iVar12 = local_54[3];\n      iVar13 = local_54[0x16];\n      iVar2 = local_54[4];\n      uVar3 = local_54[0x15];\n      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }\n      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);\n      iVar13 = *piVar21;\n      uVar18 = *(undefined4 *)(iVar13 + 0x58);\n      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }\n      if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }\n      piVar21 = piVar21 + 1;\n      if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }\n      piVar17 = (int *)*piVar21;\n      local_4c = iVar12;\n      local_48 = iVar2;\n      lVar8 = lVar22;\n    }" ({ "{") (expression_statement "lVar9 = CONCAT44(local_78,local_7c);" (assignment_expression "lVar9 = CONCAT44(local_78,local_7c)" (identifier "lVar9") (= "=") (call_expression "CONCAT44(local_78,local_7c)" (identifier "CONCAT44") (argument_list "(local_78,local_7c)" (( "(") (identifier "local_78") (, ",") (identifier "local_7c") () ")")))) (; ";")) (expression_statement "local_7c = (int)*(longlong *)(piVar17 + 1);" (assignment_expression "local_7c = (int)*(longlong *)(piVar17 + 1)" (identifier "local_7c") (= "=") (cast_expression "(int)*(longlong *)(piVar17 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(longlong *)(piVar17 + 1)" (* "*") (cast_expression "(longlong *)(piVar17 + 1)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar17 + 1)" (( "(") (binary_expression "piVar17 + 1" (identifier "piVar17") (+ "+") (number_literal "1")) () ")")))))) (; ";")) (expression_statement "local_78 = piVar17[2];" (assignment_expression "local_78 = piVar17[2]" (identifier "local_78") (= "=") (subscript_expression "piVar17[2]" (identifier "piVar17") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "lVar6 = *(longlong *)(piVar17 + 1);" (assignment_expression "lVar6 = *(longlong *)(piVar17 + 1)" (identifier "lVar6") (= "=") (pointer_expression "*(longlong *)(piVar17 + 1)" (* "*") (cast_expression "(longlong *)(piVar17 + 1)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar17 + 1)" (( "(") (binary_expression "piVar17 + 1" (identifier "piVar17") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }\n      else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }" (if "if") (parenthesized_expression "(*(code **)(*piVar17 + 0x10) == FUN_00088ef0)" (( "(") (binary_expression "*(code **)(*piVar17 + 0x10) == FUN_00088ef0" (pointer_expression "*(code **)(*piVar17 + 0x10)" (* "*") (cast_expression "(code **)(*piVar17 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar17 + 0x10)" (( "(") (binary_expression "*piVar17 + 0x10" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (identifier "FUN_00088ef0")) () ")")) (compound_statement "{\n        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;\n      }" ({ "{") (expression_statement "bVar10 = *(byte *)(piVar17 + 0x24) >> 7;" (assignment_expression "bVar10 = *(byte *)(piVar17 + 0x24) >> 7" (identifier "bVar10") (= "=") (binary_expression "*(byte *)(piVar17 + 0x24) >> 7" (pointer_expression "*(byte *)(piVar17 + 0x24)" (* "*") (cast_expression "(byte *)(piVar17 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar17 + 0x24)" (( "(") (binary_expression "piVar17 + 0x24" (identifier "piVar17") (+ "+") (number_literal "0x24")) () ")")))) (>> ">>") (number_literal "7"))) (; ";")) (} "}")) (else_clause "else {\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }" (else "else") (compound_statement "{\n        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);\n      }" ({ "{") (expression_statement "bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);" (assignment_expression "bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17)" (identifier "bVar10") (= "=") (call_expression "(**(code **)(*piVar17 + 0x10))(piVar17)" (parenthesized_expression "(**(code **)(*piVar17 + 0x10))" (( "(") (pointer_expression "**(code **)(*piVar17 + 0x10)" (* "*") (pointer_expression "*(code **)(*piVar17 + 0x10)" (* "*") (cast_expression "(code **)(*piVar17 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar17 + 0x10)" (( "(") (binary_expression "*piVar17 + 0x10" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(piVar17)" (( "(") (identifier "piVar17") () ")")))) (; ";")) (} "}")))) (expression_statement "local_54 = (int *)*piVar21;" (assignment_expression "local_54 = (int *)*piVar21" (identifier "local_54") (= "=") (cast_expression "(int *)*piVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")))) (; ";")) (expression_statement "lVar22 = lVar6;" (assignment_expression "lVar22 = lVar6" (identifier "lVar22") (= "=") (identifier "lVar6")) (; ";")) (if_statement "if (bVar10 != 0) {\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }" (if "if") (parenthesized_expression "(bVar10 != 0)" (( "(") (binary_expression "bVar10 != 0" (identifier "bVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }\n      }" ({ "{") (if_statement "if (*(code **)(*local_54 + 0x14) == FUN_00089130) {\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }\n        else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }" (if "if") (parenthesized_expression "(*(code **)(*local_54 + 0x14) == FUN_00089130)" (( "(") (binary_expression "*(code **)(*local_54 + 0x14) == FUN_00089130" (pointer_expression "*(code **)(*local_54 + 0x14)" (* "*") (cast_expression "(code **)(*local_54 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_54 + 0x14)" (( "(") (binary_expression "*local_54 + 0x14" (pointer_expression "*local_54" (* "*") (identifier "local_54")) (+ "+") (number_literal "0x14")) () ")")))) (== "==") (identifier "FUN_00089130")) () ")")) (compound_statement "{\n          if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }\n          lVar22 = *(longlong *)(local_54 + 0xd);\n        }" ({ "{") (if_statement "if (-1 < (char)local_54[0x24]) {\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }" (if "if") (parenthesized_expression "(-1 < (char)local_54[0x24])" (( "(") (binary_expression "-1 < (char)local_54[0x24]" (number_literal "-1") (< "<") (cast_expression "(char)local_54[0x24]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_54[0x24]" (identifier "local_54") ([ "[") (number_literal "0x24") (] "]")))) () ")")) (compound_statement "{\n                    \n            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");\n          }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");" (call_expression "FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address")" (identifier "FUN_0005f0b0") (argument_list "("../../gold/output.h",0x107b,"do_load_address")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x107b") (, ",") (string_literal ""do_load_address"" (" """) (string_content "do_load_address") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar22 = *(longlong *)(local_54 + 0xd);" (assignment_expression "lVar22 = *(longlong *)(local_54 + 0xd)" (identifier "lVar22") (= "=") (pointer_expression "*(longlong *)(local_54 + 0xd)" (* "*") (cast_expression "(longlong *)(local_54 + 0xd)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0xd)" (( "(") (binary_expression "local_54 + 0xd" (identifier "local_54") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }" (else "else") (compound_statement "{\n          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);\n          local_54 = (int *)*piVar21;\n        }" ({ "{") (expression_statement "lVar22 = (**(code **)(*local_54 + 0x14))(local_54);" (assignment_expression "lVar22 = (**(code **)(*local_54 + 0x14))(local_54)" (identifier "lVar22") (= "=") (call_expression "(**(code **)(*local_54 + 0x14))(local_54)" (parenthesized_expression "(**(code **)(*local_54 + 0x14))" (( "(") (pointer_expression "**(code **)(*local_54 + 0x14)" (* "*") (pointer_expression "*(code **)(*local_54 + 0x14)" (* "*") (cast_expression "(code **)(*local_54 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_54 + 0x14)" (( "(") (binary_expression "*local_54 + 0x14" (pointer_expression "*local_54" (* "*") (identifier "local_54")) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(local_54)" (( "(") (identifier "local_54") () ")")))) (; ";")) (expression_statement "local_54 = (int *)*piVar21;" (assignment_expression "local_54 = (int *)*piVar21" (identifier "local_54") (= "=") (cast_expression "(int *)*piVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar12 = local_54[3];" (assignment_expression "iVar12 = local_54[3]" (identifier "iVar12") (= "=") (subscript_expression "local_54[3]" (identifier "local_54") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar13 = local_54[0x16];" (assignment_expression "iVar13 = local_54[0x16]" (identifier "iVar13") (= "=") (subscript_expression "local_54[0x16]" (identifier "local_54") ([ "[") (number_literal "0x16") (] "]"))) (; ";")) (expression_statement "iVar2 = local_54[4];" (assignment_expression "iVar2 = local_54[4]" (identifier "iVar2") (= "=") (subscript_expression "local_54[4]" (identifier "local_54") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar3 = local_54[0x15];" (assignment_expression "uVar3 = local_54[0x15]" (identifier "uVar3") (= "=") (subscript_expression "local_54[0x15]" (identifier "local_54") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (if_statement "if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }\n      else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }" (if "if") (parenthesized_expression "((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9))" (( "(") (binary_expression "(local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)" (parenthesized_expression "(local_50 == 0)" (( "(") (binary_expression "local_50 == 0" (identifier "local_50") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(lVar22 - lVar6 != lVar8 - lVar9)" (( "(") (binary_expression "lVar22 - lVar6 != lVar8 - lVar9" (binary_expression "lVar22 - lVar6" (identifier "lVar22") (- "-") (identifier "lVar6")) (!= "!=") (binary_expression "lVar8 - lVar9" (identifier "lVar8") (- "-") (identifier "lVar9"))) () ")"))) () ")")) (compound_statement "{\nLAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);\nLAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);\n        *(int *)(local_50 + 0x15c) = local_7c;\n        *(int *)(local_50 + 0x160) = local_78;\n        *(longlong *)(local_50 + 0x164) = lVar22;\n        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;\n        if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }\n        local_7d = 0;\n        local_34 = bVar1 & 1;\n        if (local_90 == 0) {\n          local_90 = local_50;\n        }\n      }" ({ "{") (labeled_statement "LAB_0010d018:\n        local_4c = FUN_0007b810(uVar3,iVar13);" (statement_identifier "LAB_0010d018") (: ":") (expression_statement "local_4c = FUN_0007b810(uVar3,iVar13);" (assignment_expression "local_4c = FUN_0007b810(uVar3,iVar13)" (identifier "local_4c") (= "=") (call_expression "FUN_0007b810(uVar3,iVar13)" (identifier "FUN_0007b810") (argument_list "(uVar3,iVar13)" (( "(") (identifier "uVar3") (, ",") (identifier "iVar13") () ")")))) (; ";"))) (labeled_statement "LAB_0010d029:\n        local_50 = FUN_0007f710(param_2,1,local_4c);" (statement_identifier "LAB_0010d029") (: ":") (expression_statement "local_50 = FUN_0007f710(param_2,1,local_4c);" (assignment_expression "local_50 = FUN_0007f710(param_2,1,local_4c)" (identifier "local_50") (= "=") (call_expression "FUN_0007f710(param_2,1,local_4c)" (identifier "FUN_0007f710") (argument_list "(param_2,1,local_4c)" (( "(") (identifier "param_2") (, ",") (number_literal "1") (, ",") (identifier "local_4c") () ")")))) (; ";"))) (expression_statement "*(int *)(local_50 + 0x15c) = local_7c;" (assignment_expression "*(int *)(local_50 + 0x15c) = local_7c" (pointer_expression "*(int *)(local_50 + 0x15c)" (* "*") (cast_expression "(int *)(local_50 + 0x15c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x15c)" (( "(") (binary_expression "local_50 + 0x15c" (identifier "local_50") (+ "+") (number_literal "0x15c")) () ")")))) (= "=") (identifier "local_7c")) (; ";")) (expression_statement "*(int *)(local_50 + 0x160) = local_78;" (assignment_expression "*(int *)(local_50 + 0x160) = local_78" (pointer_expression "*(int *)(local_50 + 0x160)" (* "*") (cast_expression "(int *)(local_50 + 0x160)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x160)" (( "(") (binary_expression "local_50 + 0x160" (identifier "local_50") (+ "+") (number_literal "0x160")) () ")")))) (= "=") (identifier "local_78")) (; ";")) (expression_statement "*(longlong *)(local_50 + 0x164) = lVar22;" (assignment_expression "*(longlong *)(local_50 + 0x164) = lVar22" (pointer_expression "*(longlong *)(local_50 + 0x164)" (* "*") (cast_expression "(longlong *)(local_50 + 0x164)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x164)" (( "(") (binary_expression "local_50 + 0x164" (identifier "local_50") (+ "+") (number_literal "0x164")) () ")")))) (= "=") (identifier "lVar22")) (; ";")) (expression_statement "*(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;" (assignment_expression "*(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2" (pointer_expression "*(byte *)(local_50 + 0x19c)" (* "*") (cast_expression "(byte *)(local_50 + 0x19c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x19c)" (( "(") (binary_expression "local_50 + 0x19c" (identifier "local_50") (+ "+") (number_literal "0x19c")) () ")")))) (= "=") (binary_expression "*(byte *)(local_50 + 0x19c) | 2" (pointer_expression "*(byte *)(local_50 + 0x19c)" (* "*") (cast_expression "(byte *)(local_50 + 0x19c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x19c)" (( "(") (binary_expression "local_50 + 0x19c" (identifier "local_50") (+ "+") (number_literal "0x19c")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (if_statement "if (*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }" (if "if") (parenthesized_expression "(*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3))" (( "(") (binary_expression "*(uint *)(local_50 + 0x180) < param_4 ||\n            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)" (binary_expression "*(uint *)(local_50 + 0x180) < param_4" (pointer_expression "*(uint *)(local_50 + 0x180)" (* "*") (cast_expression "(uint *)(local_50 + 0x180)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x180)" (( "(") (binary_expression "local_50 + 0x180" (identifier "local_50") (+ "+") (number_literal "0x180")) () ")")))) (< "<") (identifier "param_4")) (|| "||") (binary_expression "*(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)" (binary_expression "*(uint *)(local_50 + 0x180) - param_4" (pointer_expression "*(uint *)(local_50 + 0x180)" (* "*") (cast_expression "(uint *)(local_50 + 0x180)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x180)" (( "(") (binary_expression "local_50 + 0x180" (identifier "local_50") (+ "+") (number_literal "0x180")) () ")")))) (- "-") (identifier "param_4")) (< "<") (call_expression "(uint)(*(uint *)(local_50 + 0x17c) < param_3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(local_50 + 0x17c) < param_3)" (( "(") (binary_expression "*(uint *)(local_50 + 0x17c) < param_3" (pointer_expression "*(uint *)(local_50 + 0x17c)" (* "*") (cast_expression "(uint *)(local_50 + 0x17c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x17c)" (( "(") (binary_expression "local_50 + 0x17c" (identifier "local_50") (+ "+") (number_literal "0x17c")) () ")")))) (< "<") (identifier "param_3")) () ")"))))) () ")")) (compound_statement "{\n          *(uint *)(local_50 + 0x17c) = param_3;\n          *(uint *)(local_50 + 0x180) = param_4;\n        }" ({ "{") (expression_statement "*(uint *)(local_50 + 0x17c) = param_3;" (assignment_expression "*(uint *)(local_50 + 0x17c) = param_3" (pointer_expression "*(uint *)(local_50 + 0x17c)" (* "*") (cast_expression "(uint *)(local_50 + 0x17c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x17c)" (( "(") (binary_expression "local_50 + 0x17c" (identifier "local_50") (+ "+") (number_literal "0x17c")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "*(uint *)(local_50 + 0x180) = param_4;" (assignment_expression "*(uint *)(local_50 + 0x180) = param_4" (pointer_expression "*(uint *)(local_50 + 0x180)" (* "*") (cast_expression "(uint *)(local_50 + 0x180)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_50 + 0x180)" (( "(") (binary_expression "local_50 + 0x180" (identifier "local_50") (+ "+") (number_literal "0x180")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (} "}"))) (expression_statement "local_7d = 0;" (assignment_expression "local_7d = 0" (identifier "local_7d") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = bVar1 & 1;" (assignment_expression "local_34 = bVar1 & 1" (identifier "local_34") (= "=") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1"))) (; ";")) (if_statement "if (local_90 == 0) {\n          local_90 = local_50;\n        }" (if "if") (parenthesized_expression "(local_90 == 0)" (( "(") (binary_expression "local_90 == 0" (identifier "local_90") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_90 = local_50;\n        }" ({ "{") (expression_statement "local_90 = local_50;" (assignment_expression "local_90 = local_50" (identifier "local_90") (= "=") (identifier "local_50")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }" (else "else") (compound_statement "{\n        lVar8 = lVar8 + CONCAT44(local_48,local_4c);\n        lVar6 = lVar22;\n        if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }\n        local_48 = (uint)((ulonglong)lVar8 >> 0x20);\n        local_4c = (uint)lVar8;\n        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);\n        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;\n        if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }\nLAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }\n        local_4c = FUN_0007b810(uVar3,iVar13);\n      }" ({ "{") (expression_statement "lVar8 = lVar8 + CONCAT44(local_48,local_4c);" (assignment_expression "lVar8 = lVar8 + CONCAT44(local_48,local_4c)" (identifier "lVar8") (= "=") (binary_expression "lVar8 + CONCAT44(local_48,local_4c)" (identifier "lVar8") (+ "+") (call_expression "CONCAT44(local_48,local_4c)" (identifier "CONCAT44") (argument_list "(local_48,local_4c)" (( "(") (identifier "local_48") (, ",") (identifier "local_4c") () ")"))))) (; ";")) (expression_statement "lVar6 = lVar22;" (assignment_expression "lVar6 = lVar22" (identifier "lVar6") (= "=") (identifier "lVar22")) (; ";")) (if_statement "if (local_98 != 0 || local_9c != 0) {\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }" (if "if") (parenthesized_expression "(local_98 != 0 || local_9c != 0)" (( "(") (binary_expression "local_98 != 0 || local_9c != 0" (binary_expression "local_98 != 0" (identifier "local_98") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "local_9c != 0" (identifier "local_9c") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          lVar8 = lVar8 + lVar7;\n          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);\n          lVar6 = lVar22 + lVar7;\n          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);\n        }" ({ "{") (expression_statement "lVar8 = lVar8 + lVar7;" (assignment_expression "lVar8 = lVar8 + lVar7" (identifier "lVar8") (= "=") (binary_expression "lVar8 + lVar7" (identifier "lVar8") (+ "+") (identifier "lVar7"))) (; ";")) (expression_statement "lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);" (assignment_expression "lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8)" (identifier "lVar8") (= "=") (call_expression "CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8)" (identifier "CONCAT44") (argument_list "((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8)" (( "(") (binary_expression "(uint)((ulonglong)lVar8 >> 0x20) & uVar19" (call_expression "(uint)((ulonglong)lVar8 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar8")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (identifier "uVar19")) (, ",") (binary_expression "-local_9c & (uint)lVar8" (unary_expression "-local_9c" (- "-") (identifier "local_9c")) (& "&") (cast_expression "(uint)lVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar8"))) () ")")))) (; ";")) (expression_statement "lVar6 = lVar22 + lVar7;" (assignment_expression "lVar6 = lVar22 + lVar7" (identifier "lVar6") (= "=") (binary_expression "lVar22 + lVar7" (identifier "lVar22") (+ "+") (identifier "lVar7"))) (; ";")) (expression_statement "lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);" (assignment_expression "lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6)" (identifier "lVar6") (= "=") (call_expression "CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6)" (identifier "CONCAT44") (argument_list "((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6)" (( "(") (binary_expression "(uint)((ulonglong)lVar6 >> 0x20) & uVar19" (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")) () ")"))) (& "&") (identifier "uVar19")) (, ",") (binary_expression "-local_9c & (uint)lVar6" (unary_expression "-local_9c" (- "-") (identifier "local_9c")) (& "&") (cast_expression "(uint)lVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar6"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_48 = (uint)((ulonglong)lVar8 >> 0x20);" (assignment_expression "local_48 = (uint)((ulonglong)lVar8 >> 0x20)" (identifier "local_48") (= "=") (call_expression "(uint)((ulonglong)lVar8 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar8")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_4c = (uint)lVar8;" (assignment_expression "local_4c = (uint)lVar8" (identifier "local_4c") (= "=") (cast_expression "(uint)lVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar8"))) (; ";")) (expression_statement "uVar14 = (uint)((ulonglong)lVar6 >> 0x20);" (assignment_expression "uVar14 = (uint)((ulonglong)lVar6 >> 0x20)" (identifier "uVar14") (= "=") (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")) () ")")))) (; ";")) (if_statement "if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))\n        goto LAB_0010d018;" (if "if") (parenthesized_expression "(local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))" (( "(") (binary_expression "local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6)" (binary_expression "local_48 < uVar14" (identifier "local_48") (< "<") (identifier "uVar14")) (|| "||") (binary_expression "local_48 - uVar14 < (uint)(local_4c < (uint)lVar6)" (binary_expression "local_48 - uVar14" (identifier "local_48") (- "-") (identifier "uVar14")) (< "<") (call_expression "(uint)(local_4c < (uint)lVar6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_4c < (uint)lVar6)" (( "(") (binary_expression "local_4c < (uint)lVar6" (identifier "local_4c") (< "<") (cast_expression "(uint)lVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar6"))) () ")"))))) () ")")) (goto_statement "goto LAB_0010d018;" (goto "goto") (statement_identifier "LAB_0010d018") (; ";"))) (if_statement "if (local_7d != 0) {\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }" (if "if") (parenthesized_expression "(local_7d != 0)" (( "(") (binary_expression "local_7d != 0" (identifier "local_7d") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (local_54[0x14] != 8) goto LAB_0010d018;\n          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;\n          local_4c = FUN_0007b810(uVar3,iVar13);\n          goto LAB_0010d029;\n        }" ({ "{") (if_statement "if (local_54[0x14] != 8) goto LAB_0010d018;" (if "if") (parenthesized_expression "(local_54[0x14] != 8)" (( "(") (binary_expression "local_54[0x14] != 8" (subscript_expression "local_54[0x14]" (identifier "local_54") ([ "[") (number_literal "0x14") (] "]")) (!= "!=") (number_literal "8")) () ")")) (goto_statement "goto LAB_0010d018;" (goto "goto") (statement_identifier "LAB_0010d018") (; ";"))) (if_statement "if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;" (if "if") (parenthesized_expression "((uVar3 & 0x400) == 0)" (( "(") (binary_expression "(uVar3 & 0x400) == 0" (parenthesized_expression "(uVar3 & 0x400)" (( "(") (binary_expression "uVar3 & 0x400" (identifier "uVar3") (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010d2c0;" (goto "goto") (statement_identifier "LAB_0010d2c0") (; ";"))) (expression_statement "local_4c = FUN_0007b810(uVar3,iVar13);" (assignment_expression "local_4c = FUN_0007b810(uVar3,iVar13)" (identifier "local_4c") (= "=") (call_expression "FUN_0007b810(uVar3,iVar13)" (identifier "FUN_0007b810") (argument_list "(uVar3,iVar13)" (( "(") (identifier "uVar3") (, ",") (identifier "iVar13") () ")")))) (; ";")) (goto_statement "goto LAB_0010d029;" (goto "goto") (statement_identifier "LAB_0010d029") (; ";")) (} "}"))) (labeled_statement "LAB_0010d2c0:\n        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }" (statement_identifier "LAB_0010d2c0") (: ":") (if_statement "if ((local_34 != 0) && ((uVar3 & 1) != 0)) {\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }" (if "if") (parenthesized_expression "((local_34 != 0) && ((uVar3 & 1) != 0))" (( "(") (binary_expression "(local_34 != 0) && ((uVar3 & 1) != 0)" (parenthesized_expression "(local_34 != 0)" (( "(") (binary_expression "local_34 != 0" (identifier "local_34") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uVar3 & 1) != 0)" (( "(") (binary_expression "(uVar3 & 1) != 0" (parenthesized_expression "(uVar3 & 1)" (( "(") (binary_expression "uVar3 & 1" (identifier "uVar3") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }\n          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);\n          if (local_34 == 0) goto LAB_0010d018;\n        }" ({ "{") (if_statement "if (*(int *)(DAT_00302378 + 8) == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }" (if "if") (parenthesized_expression "(*(int *)(DAT_00302378 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_00302378 + 8) == 0" (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);\n          }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/parameters.h",0x5c,"options",piVar21)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "piVar21") () ")"))) (; ";")) (} "}"))) (expression_statement "local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);" (assignment_expression "local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d)" (identifier "local_34") (= "=") (pointer_expression "*(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d)" (* "*") (cast_expression "(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00302378 + 8) + 0x253d)" (( "(") (binary_expression "*(int *)(DAT_00302378 + 8) + 0x253d" (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x253d")) () ")"))))) (; ";")) (if_statement "if (local_34 == 0) goto LAB_0010d018;" (if "if") (parenthesized_expression "(local_34 == 0)" (( "(") (binary_expression "local_34 == 0" (identifier "local_34") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010d018;" (goto "goto") (statement_identifier "LAB_0010d018") (; ";"))) (} "}")))) (expression_statement "local_4c = FUN_0007b810(uVar3,iVar13);" (assignment_expression "local_4c = FUN_0007b810(uVar3,iVar13)" (identifier "local_4c") (= "=") (call_expression "FUN_0007b810(uVar3,iVar13)" (identifier "FUN_0007b810") (argument_list "(uVar3,iVar13)" (( "(") (identifier "uVar3") (, ",") (identifier "iVar13") () ")")))) (; ";")) (} "}")))) (expression_statement "FUN_000bfab0(local_50,param_2,*piVar21,local_4c);" (call_expression "FUN_000bfab0(local_50,param_2,*piVar21,local_4c)" (identifier "FUN_000bfab0") (argument_list "(local_50,param_2,*piVar21,local_4c)" (( "(") (identifier "local_50") (, ",") (identifier "param_2") (, ",") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (, ",") (identifier "local_4c") () ")"))) (; ";")) (expression_statement "iVar13 = *piVar21;" (assignment_expression "iVar13 = *piVar21" (identifier "iVar13") (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (expression_statement "uVar18 = *(undefined4 *)(iVar13 + 0x58);" (assignment_expression "uVar18 = *(undefined4 *)(iVar13 + 0x58)" (identifier "uVar18") (= "=") (pointer_expression "*(undefined4 *)(iVar13 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar13 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x58)" (( "(") (binary_expression "iVar13 + 0x58" (identifier "iVar13") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (if_statement "if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {\n        local_34 = 0;\n      }" (if "if") (parenthesized_expression "((*(uint *)(iVar13 + 0x54) & 1) != 0)" (( "(") (binary_expression "(*(uint *)(iVar13 + 0x54) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar13 + 0x54) & 1)" (( "(") (binary_expression "*(uint *)(iVar13 + 0x54) & 1" (pointer_expression "*(uint *)(iVar13 + 0x54)" (* "*") (cast_expression "(uint *)(iVar13 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x54)" (( "(") (binary_expression "iVar13 + 0x54" (identifier "iVar13") (+ "+") (number_literal "0x54")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_34 = 0;\n      }" ({ "{") (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar13 + 0x50) == 8) {\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar13 + 0x50) == 8)" (( "(") (binary_expression "*(int *)(iVar13 + 0x50) == 8" (pointer_expression "*(int *)(iVar13 + 0x50)" (* "*") (cast_expression "(int *)(iVar13 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x50)" (( "(") (binary_expression "iVar13 + 0x50" (identifier "iVar13") (+ "+") (number_literal "0x50")) () ")")))) (== "==") (number_literal "8")) () ")")) (compound_statement "{\n        bVar5 = iVar12 != 0 || iVar2 != 0;\n        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);\n        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;\n        if (bVar10 != 0) {\n          local_7d = bVar10;\n        }\n      }" ({ "{") (expression_statement "bVar5 = iVar12 != 0 || iVar2 != 0;" (assignment_expression "bVar5 = iVar12 != 0 || iVar2 != 0" (identifier "bVar5") (= "=") (binary_expression "iVar12 != 0 || iVar2 != 0" (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")))) (; ";")) (expression_statement "uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);" (assignment_expression "uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5)" (identifier "uVar18") (= "=") (call_expression "CONCAT31((int3)((uint)uVar18 >> 8),bVar5)" (identifier "CONCAT31") (argument_list "((int3)((uint)uVar18 >> 8),bVar5)" (( "(") (call_expression "(int3)((uint)uVar18 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "((uint)uVar18 >> 8)" (( "(") (binary_expression "(uint)uVar18 >> 8" (cast_expression "(uint)uVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar18")) (>> ">>") (number_literal "8")) () ")"))) (, ",") (identifier "bVar5") () ")")))) (; ";")) (expression_statement "bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;" (assignment_expression "bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5" (identifier "bVar10") (= "=") (binary_expression "((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5" (parenthesized_expression "((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1)" (( "(") (binary_expression "(byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1" (call_expression "(byte)(*(uint *)(iVar13 + 0x54) >> 10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*(uint *)(iVar13 + 0x54) >> 10)" (( "(") (binary_expression "*(uint *)(iVar13 + 0x54) >> 10" (pointer_expression "*(uint *)(iVar13 + 0x54)" (* "*") (cast_expression "(uint *)(iVar13 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x54)" (( "(") (binary_expression "iVar13 + 0x54" (identifier "iVar13") (+ "+") (number_literal "0x54")) () ")")))) (>> ">>") (number_literal "10")) () ")"))) (^ "^") (number_literal "1")) () ")")) (& "&") (identifier "bVar5"))) (; ";")) (if_statement "if (bVar10 != 0) {\n          local_7d = bVar10;\n        }" (if "if") (parenthesized_expression "(bVar10 != 0)" (( "(") (binary_expression "bVar10 != 0" (identifier "bVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_7d = bVar10;\n        }" ({ "{") (expression_statement "local_7d = bVar10;" (assignment_expression "local_7d = bVar10" (identifier "local_7d") (= "=") (identifier "bVar10")) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" (identifier "piVar21") (= "=") (binary_expression "piVar21 + 1" (identifier "piVar21") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_24 == piVar21) {\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }" (if "if") (parenthesized_expression "(local_24 == piVar21)" (( "(") (binary_expression "local_24 == piVar21" (identifier "local_24") (== "==") (identifier "piVar21")) () ")")) (compound_statement "{\n        piVar17 = local_28;\n        if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }\n        goto LAB_0010d48b;\n      }" ({ "{") (expression_statement "piVar17 = local_28;" (assignment_expression "piVar17 = local_28" (identifier "piVar17") (= "=") (identifier "local_28")) (; ";")) (if_statement "if (local_90 != 0) {\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(local_90 != 0)" (( "(") (binary_expression "local_90 != 0" (identifier "local_90") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar12 = *(int *)(DAT_00302378 + 8);\n          if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }\n          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }\n        }" ({ "{") (expression_statement "iVar12 = *(int *)(DAT_00302378 + 8);" (assignment_expression "iVar12 = *(int *)(DAT_00302378 + 8)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(DAT_00302378 + 8)" (* "*") (cast_expression "(int *)(DAT_00302378 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00302378 + 8)" (( "(") (binary_expression "DAT_00302378 + 8" (identifier "DAT_00302378") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar12 == 0) {\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);\n          }" ({ "{") (expression_statement "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);" (call_expression "FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18)" (identifier "FUN_0005f0b0") (argument_list "("../../gold/parameters.h",0x5c,"options",uVar18)" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) (, ",") (identifier "uVar18") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {\n            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\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            uVar15 = FUN_001085c0(param_1,param_2);\n            uVar19 = *(uint *)(local_90 + 0x15c);\n            uVar3 = *(uint *)(local_90 + 0x160);\n            uVar14 = *(uint *)(local_90 + 0x164);\n            uVar4 = *(uint *)(local_90 + 0x168);\n            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);\n            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);\n            uVar16 = (uint)uVar23;\n            piVar17 = local_28;\n            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }\n          }" ({ "{") (expression_statement "uVar15 = FUN_001085c0(param_1,param_2);" (assignment_expression "uVar15 = FUN_001085c0(param_1,param_2)" (identifier "uVar15") (= "=") (call_expression "FUN_001085c0(param_1,param_2)" (identifier "FUN_001085c0") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar19 = *(uint *)(local_90 + 0x15c);" (assignment_expression "uVar19 = *(uint *)(local_90 + 0x15c)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(local_90 + 0x15c)" (* "*") (cast_expression "(uint *)(local_90 + 0x15c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x15c)" (( "(") (binary_expression "local_90 + 0x15c" (identifier "local_90") (+ "+") (number_literal "0x15c")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(uint *)(local_90 + 0x160);" (assignment_expression "uVar3 = *(uint *)(local_90 + 0x160)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(local_90 + 0x160)" (* "*") (cast_expression "(uint *)(local_90 + 0x160)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x160)" (( "(") (binary_expression "local_90 + 0x160" (identifier "local_90") (+ "+") (number_literal "0x160")) () ")"))))) (; ";")) (expression_statement "uVar14 = *(uint *)(local_90 + 0x164);" (assignment_expression "uVar14 = *(uint *)(local_90 + 0x164)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)(local_90 + 0x164)" (* "*") (cast_expression "(uint *)(local_90 + 0x164)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x164)" (( "(") (binary_expression "local_90 + 0x164" (identifier "local_90") (+ "+") (number_literal "0x164")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(uint *)(local_90 + 0x168);" (assignment_expression "uVar4 = *(uint *)(local_90 + 0x168)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(local_90 + 0x168)" (* "*") (cast_expression "(uint *)(local_90 + 0x168)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x168)" (( "(") (binary_expression "local_90 + 0x168" (identifier "local_90") (+ "+") (number_literal "0x168")) () ")"))))) (; ";")) (expression_statement "uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);" (assignment_expression "uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15)" (identifier "uVar23") (= "=") (call_expression "FUN_00108650(param_1,uVar14,uVar4,uVar15)" (identifier "FUN_00108650") (argument_list "(param_1,uVar14,uVar4,uVar15)" (( "(") (identifier "param_1") (, ",") (identifier "uVar14") (, ",") (identifier "uVar4") (, ",") (identifier "uVar15") () ")")))) (; ";")) (expression_statement "uVar20 = (uint)((ulonglong)uVar23 >> 0x20);" (assignment_expression "uVar20 = (uint)((ulonglong)uVar23 >> 0x20)" (identifier "uVar20") (= "=") (call_expression "(uint)((ulonglong)uVar23 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar23 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar23 >> 0x20" (cast_expression "(ulonglong)uVar23" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar23")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar16 = (uint)uVar23;" (assignment_expression "uVar16 = (uint)uVar23" (identifier "uVar16") (= "=") (cast_expression "(uint)uVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar23"))) (; ";")) (expression_statement "piVar17 = local_28;" (assignment_expression "piVar17 = local_28" (identifier "piVar17") (= "=") (identifier "local_28")) (; ";")) (if_statement "if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)) {\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }\n            else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }" (if "if") (parenthesized_expression "((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15))" (( "(") (binary_expression "(uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <\n                (uint)((uVar14 & local_9c - 1U) < uVar15)" (parenthesized_expression "(uVar4 & local_98 + -1 + (uint)(local_9c != 0))" (( "(") (binary_expression "uVar4 & local_98 + -1 + (uint)(local_9c != 0)" (identifier "uVar4") (& "&") (binary_expression "local_98 + -1 + (uint)(local_9c != 0)" (binary_expression "local_98 + -1" (identifier "local_98") (+ "+") (number_literal "-1")) (+ "+") (call_expression "(uint)(local_9c != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_9c != 0)" (( "(") (binary_expression "local_9c != 0" (identifier "local_9c") (!= "!=") (number_literal "0")) () ")"))))) () ")")) (< "<") (call_expression "(uint)((uVar14 & local_9c - 1U) < uVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar14 & local_9c - 1U) < uVar15)" (( "(") (binary_expression "(uVar14 & local_9c - 1U) < uVar15" (parenthesized_expression "(uVar14 & local_9c - 1U)" (( "(") (binary_expression "uVar14 & local_9c - 1U" (identifier "uVar14") (& "&") (binary_expression "local_9c - 1U" (identifier "local_9c") (- "-") (number_literal "1U"))) () ")")) (< "<") (identifier "uVar15")) () ")")))) () ")")) (compound_statement "{\n              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }\n            }" ({ "{") (if_statement "if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }" (if "if") (parenthesized_expression "((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20))" (( "(") (binary_expression "(uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&\n                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)" (parenthesized_expression "(uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20)" (( "(") (binary_expression "uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20" (binary_expression "uVar20 <= uVar4" (identifier "uVar20") (<= "<=") (identifier "uVar4")) (&& "&&") (binary_expression "(uint)(uVar14 < uVar16) <= uVar4 - uVar20" (call_expression "(uint)(uVar14 < uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < uVar16)" (( "(") (binary_expression "uVar14 < uVar16" (identifier "uVar14") (< "<") (identifier "uVar16")) () ")"))) (<= "<=") (binary_expression "uVar4 - uVar20" (identifier "uVar4") (- "-") (identifier "uVar20")))) () ")")) (&& "&&") (parenthesized_expression "(uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)" (( "(") (binary_expression "uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20" (binary_expression "uVar20 <= uVar3" (identifier "uVar20") (<= "<=") (identifier "uVar3")) (&& "&&") (binary_expression "(uint)(uVar19 < uVar16) <= uVar3 - uVar20" (call_expression "(uint)(uVar19 < uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar19 < uVar16)" (( "(") (binary_expression "uVar19 < uVar16" (identifier "uVar19") (< "<") (identifier "uVar16")) () ")"))) (<= "<=") (binary_expression "uVar3 - uVar20" (identifier "uVar3") (- "-") (identifier "uVar20")))) () ")"))) () ")")) (compound_statement "{\n                if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }\n                local_94 = FUN_0007f710(param_2,1,4);\n                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;\n                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;\n                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;\n                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n                piVar17 = local_28;\n              }" ({ "{") (if_statement "if ((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')) {\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0'))" (( "(") (binary_expression "(*(int *)(param_1 + 0xc) != 0) &&\n                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')" (parenthesized_expression "(*(int *)(param_1 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) != 0" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0')" (( "(") (comma_expression "cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),\n                   cVar11 == '\0'" (assignment_expression "cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23)" (identifier "cVar11") (= "=") (call_expression "FUN_00107300(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23)" (identifier "FUN_00107300") (argument_list "(param_1,0,param_2,uVar14 - uVar16,\n                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "param_2") (, ",") (binary_expression "uVar14 - uVar16" (identifier "uVar14") (- "-") (identifier "uVar16")) (, ",") (binary_expression "(uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (parenthesized_expression "(uVar4 - uVar20)" (( "(") (binary_expression "uVar4 - uVar20" (identifier "uVar4") (- "-") (identifier "uVar20")) () ")")) (- "-") (call_expression "(uint)(uVar14 < uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < uVar16)" (( "(") (binary_expression "uVar14 < uVar16" (identifier "uVar14") (< "<") (identifier "uVar16")) () ")")))) (, ",") (identifier "uVar23") () ")")))) (, ",") (binary_expression "cVar11 == '\0'" (identifier "cVar11") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n                  uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );\n                    \n                  FUN_0005ad30(uVar18);\n                }" ({ "{") (expression_statement "uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  );" (assignment_expression "uVar18 = gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  )" (identifier "uVar18") (= "=") (call_expression "gettext(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  )" (identifier "gettext") (argument_list "(\n                                  "creating a segment to contain the file and program headers outside of any MEMORY region"\n                                  )" (( "(") (string_literal ""creating a segment to contain the file and program headers outside of any MEMORY region"" (" """) (string_content "creating a segment to contain the file and program headers outside of any MEMORY region") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0005ad30(uVar18);" (call_expression "FUN_0005ad30(uVar18)" (identifier "FUN_0005ad30") (argument_list "(uVar18)" (( "(") (identifier "uVar18") () ")"))) (; ";")) (} "}"))) (expression_statement "local_94 = FUN_0007f710(param_2,1,4);" (assignment_expression "local_94 = FUN_0007f710(param_2,1,4)" (identifier "local_94") (= "=") (call_expression "FUN_0007f710(param_2,1,4)" (identifier "FUN_0007f710") (argument_list "(param_2,1,4)" (( "(") (identifier "param_2") (, ",") (number_literal "1") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(uint *)(local_94 + 0x15c) = uVar19 - uVar16;" (assignment_expression "*(uint *)(local_94 + 0x15c) = uVar19 - uVar16" (pointer_expression "*(uint *)(local_94 + 0x15c)" (* "*") (cast_expression "(uint *)(local_94 + 0x15c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_94 + 0x15c)" (( "(") (binary_expression "local_94 + 0x15c" (identifier "local_94") (+ "+") (number_literal "0x15c")) () ")")))) (= "=") (binary_expression "uVar19 - uVar16" (identifier "uVar19") (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "*(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);" (assignment_expression "*(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16)" (pointer_expression "*(uint *)(local_94 + 0x160)" (* "*") (cast_expression "(uint *)(local_94 + 0x160)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_94 + 0x160)" (( "(") (binary_expression "local_94 + 0x160" (identifier "local_94") (+ "+") (number_literal "0x160")) () ")")))) (= "=") (binary_expression "(uVar3 - uVar20) - (uint)(uVar19 < uVar16)" (parenthesized_expression "(uVar3 - uVar20)" (( "(") (binary_expression "uVar3 - uVar20" (identifier "uVar3") (- "-") (identifier "uVar20")) () ")")) (- "-") (call_expression "(uint)(uVar19 < uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar19 < uVar16)" (( "(") (binary_expression "uVar19 < uVar16" (identifier "uVar19") (< "<") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "*(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;" (assignment_expression "*(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2" (pointer_expression "*(byte *)(local_94 + 0x19c)" (* "*") (cast_expression "(byte *)(local_94 + 0x19c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_94 + 0x19c)" (( "(") (binary_expression "local_94 + 0x19c" (identifier "local_94") (+ "+") (number_literal "0x19c")) () ")")))) (= "=") (binary_expression "*(byte *)(local_94 + 0x19c) | 2" (pointer_expression "*(byte *)(local_94 + 0x19c)" (* "*") (cast_expression "(byte *)(local_94 + 0x19c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_94 + 0x19c)" (( "(") (binary_expression "local_94 + 0x19c" (identifier "local_94") (+ "+") (number_literal "0x19c")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (expression_statement "*(uint *)(local_94 + 0x164) = uVar14 - uVar16;" (assignment_expression "*(uint *)(local_94 + 0x164) = uVar14 - uVar16" (pointer_expression "*(uint *)(local_94 + 0x164)" (* "*") (cast_expression "(uint *)(local_94 + 0x164)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_94 + 0x164)" (( "(") (binary_expression "local_94 + 0x164" (identifier "local_94") (+ "+") (number_literal "0x164")) () ")")))) (= "=") (binary_expression "uVar14 - uVar16" (identifier "uVar14") (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "*(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);" (assignment_expression "*(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (pointer_expression "*(uint *)(local_94 + 0x168)" (* "*") (cast_expression "(uint *)(local_94 + 0x168)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_94 + 0x168)" (( "(") (binary_expression "local_94 + 0x168" (identifier "local_94") (+ "+") (number_literal "0x168")) () ")")))) (= "=") (binary_expression "(uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (parenthesized_expression "(uVar4 - uVar20)" (( "(") (binary_expression "uVar4 - uVar20" (identifier "uVar4") (- "-") (identifier "uVar20")) () ")")) (- "-") (call_expression "(uint)(uVar14 < uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < uVar16)" (( "(") (binary_expression "uVar14 < uVar16" (identifier "uVar14") (< "<") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "piVar17 = local_28;" (assignment_expression "piVar17 = local_28" (identifier "piVar17") (= "=") (identifier "local_28")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }" (else "else") (compound_statement "{\n              local_94 = local_90;\n              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;\n              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);\n              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;\n              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;\n              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);\n            }" ({ "{") (expression_statement "local_94 = local_90;" (assignment_expression "local_94 = local_90" (identifier "local_94") (= "=") (identifier "local_90")) (; ";")) (expression_statement "*(uint *)(local_90 + 0x15c) = uVar19 - uVar16;" (assignment_expression "*(uint *)(local_90 + 0x15c) = uVar19 - uVar16" (pointer_expression "*(uint *)(local_90 + 0x15c)" (* "*") (cast_expression "(uint *)(local_90 + 0x15c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x15c)" (( "(") (binary_expression "local_90 + 0x15c" (identifier "local_90") (+ "+") (number_literal "0x15c")) () ")")))) (= "=") (binary_expression "uVar19 - uVar16" (identifier "uVar19") (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "*(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);" (assignment_expression "*(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16)" (pointer_expression "*(uint *)(local_90 + 0x160)" (* "*") (cast_expression "(uint *)(local_90 + 0x160)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x160)" (( "(") (binary_expression "local_90 + 0x160" (identifier "local_90") (+ "+") (number_literal "0x160")) () ")")))) (= "=") (binary_expression "(uVar3 - uVar20) - (uint)(uVar19 < uVar16)" (parenthesized_expression "(uVar3 - uVar20)" (( "(") (binary_expression "uVar3 - uVar20" (identifier "uVar3") (- "-") (identifier "uVar20")) () ")")) (- "-") (call_expression "(uint)(uVar19 < uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar19 < uVar16)" (( "(") (binary_expression "uVar19 < uVar16" (identifier "uVar19") (< "<") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "*(uint *)(local_90 + 0x164) = uVar14 - uVar16;" (assignment_expression "*(uint *)(local_90 + 0x164) = uVar14 - uVar16" (pointer_expression "*(uint *)(local_90 + 0x164)" (* "*") (cast_expression "(uint *)(local_90 + 0x164)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x164)" (( "(") (binary_expression "local_90 + 0x164" (identifier "local_90") (+ "+") (number_literal "0x164")) () ")")))) (= "=") (binary_expression "uVar14 - uVar16" (identifier "uVar14") (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "*(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;" (assignment_expression "*(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2" (pointer_expression "*(byte *)(local_90 + 0x19c)" (* "*") (cast_expression "(byte *)(local_90 + 0x19c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x19c)" (( "(") (binary_expression "local_90 + 0x19c" (identifier "local_90") (+ "+") (number_literal "0x19c")) () ")")))) (= "=") (binary_expression "*(byte *)(local_90 + 0x19c) | 2" (pointer_expression "*(byte *)(local_90 + 0x19c)" (* "*") (cast_expression "(byte *)(local_90 + 0x19c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x19c)" (( "(") (binary_expression "local_90 + 0x19c" (identifier "local_90") (+ "+") (number_literal "0x19c")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (expression_statement "*(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);" (assignment_expression "*(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (pointer_expression "*(uint *)(local_90 + 0x168)" (* "*") (cast_expression "(uint *)(local_90 + 0x168)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + 0x168)" (( "(") (binary_expression "local_90 + 0x168" (identifier "local_90") (+ "+") (number_literal "0x168")) () ")")))) (= "=") (binary_expression "(uVar4 - uVar20) - (uint)(uVar14 < uVar16)" (parenthesized_expression "(uVar4 - uVar20)" (( "(") (binary_expression "uVar4 - uVar20" (identifier "uVar4") (- "-") (identifier "uVar20")) () ")")) (- "-") (call_expression "(uint)(uVar14 < uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < uVar16)" (( "(") (binary_expression "uVar14 < uVar16" (identifier "uVar14") (< "<") (identifier "uVar16")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (goto_statement "goto LAB_0010d48b;" (goto "goto") (statement_identifier "LAB_0010d48b") (; ";")) (} "}"))) (expression_statement "piVar17 = (int *)*piVar21;" (assignment_expression "piVar17 = (int *)*piVar21" (identifier "piVar17") (= "=") (cast_expression "(int *)*piVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")))) (; ";")) (expression_statement "local_4c = iVar12;" (assignment_expression "local_4c = iVar12" (identifier "local_4c") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "local_48 = iVar2;" (assignment_expression "local_48 = iVar2" (identifier "local_48") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "lVar8 = lVar22;" (assignment_expression "lVar8 = lVar22" (identifier "lVar8") (= "=") (identifier "lVar22")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*(byte *)(piVar17 + 7) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(piVar17 + 7) & 1) != 0" (parenthesized_expression "(*(byte *)(piVar17 + 7) & 1)" (( "(") (binary_expression "*(byte *)(piVar17 + 7) & 1" (pointer_expression "*(byte *)(piVar17 + 7)" (* "*") (cast_expression "(byte *)(piVar17 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar17 + 7)" (( "(") (binary_expression "piVar17 + 7" (identifier "piVar17") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0005f0b0("../../gold/output.h",0xc5,"address");" (call_expression "FUN_0005f0b0("../../gold/output.h",0xc5,"address")" (identifier "FUN_0005f0b0") (argument_list "("../../gold/output.h",0xc5,"address")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xc5") (, ",") (string_literal ""address"" (" """) (string_content "address") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: Output_segment * create_segments(Script_sections * this, Layout *
   layout, uint64_t dot_alignment) */

type_7 * __thiscall
var_6::Script_sections::create_segments(Script_sections *this,Layout *layout,uint64_t dot_alignment)

{
  type_1 *pEVar1;
  uint64_t *var_19;
  type_2 var_16;
  _Iter_comp_iter<var_6::var_1> var_2;
  type_3 *var_45;
  type_4 var_25;
  int var_24;
  type_5 *var_20;
  type_4 var_43;
  type_6 __last;
  type_2 var_21;
  bool bVar10;
  type_7 *pOVar11;
  type_8 **var_12;
  type_8 *pOVar12;
  type_4 var_32;
  int var_44;
  size_t var_49;
  type_6 var_15;
  char *format;
  type_4 var_37;
  int var_10;
  type_9 extraout_EDX;
  type_4 var_38;
  type_4 var_39;
  uint64_t var_48;
  int var_17;
  int var_18;
  type_7 *local_94;
  type_7 *var_33;
  type_2 var_40;
  type_4 var_29;
  int var_27;
  type_4 var_28;
  type_4 var_26;
  type_8 *local_54;
  type_7 *var_23;
  type_4 var_35;
  type_4 var_36;
  type_10 local_44;
  type_2 var_41;
  type_11 sections;
  
  if (this->saw_sections_clause_ == false) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/script-sections.cc",0xf83,"create_segments");
  }
  if (parameters->options_ == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->relocatable_).value != false) {
    return (type_7 *)0x0;
  }
  if (this->phdrs_elements_ != (type_12 *)0x0) {
    var_4(this,layout);
    pOVar11 = var_5(this,layout,dot_alignment);
    return pOVar11;
  }
  sections.super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>._M_impl
  ._M_start = (type_6)0x0;
  sections.super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>._M_impl
  ._M_finish = (type_6)0x0;
  sections.super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>._M_impl
  ._M_end_of_storage = (type_6)0x0;
                    /* try { // try from 0010cde5 to 0010cde9 has its CatchHandler @ 0010d648 */
  Layout::var_9(layout,&sections);
  __last = sections.
           super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>._M_impl
           ._M_finish;
  var_15 = sections.
             super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>.
             _M_impl._M_start;
  var_2._M_comp.elements_ = (var_1)this->sections_elements_;
  var_10 = (int)sections.
                super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>.
                _M_impl._M_finish -
           (int)sections.
                super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>.
                _M_impl._M_start;
  if (var_10 < 0x7ffffffd) {
    if (var_10 < 1) goto LAB_0010d4d8;
    var_10 = var_10 >> 2;
  }
  else {
    var_10 = 0x1fffffff;
  }
  do {
    var_12 = (type_8 **)var_11(var_10 << 2,(type_13 *)&var_13::nothrow);
    if (var_12 != (type_8 **)0x0) {
                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */
      var_13::
      __stable_sort_adaptive<__gnu_cxx::__normal_iterator<var_6::type_8**,var_7::vector<var_6::type_8*>var_8>,_gold::type_8**,_int,var_14::__ops::_Iter_comp_iter<var_6::var_1>var_8>
                ((__normal_iterator<var_6::type_8**,var_7::vector<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>var_8>
                  )var_15,
                 (__normal_iterator<var_6::type_8**,var_7::vector<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>var_8>
                  )__last,var_12,var_10,var_2);
      goto LAB_0010ce6f;
    }
    var_10 = var_10 >> 1;
  } while (var_10 != 0);
LAB_0010d4d8:
                    /* try { // try from 0010d4e4 to 0010d4e8 has its CatchHandler @ 0010d638 */
  var_13::
  __inplace_stable_sort<__gnu_cxx::__normal_iterator<var_6::type_8**,var_7::vector<var_6::type_8*>var_8>,var_14::__ops::_Iter_comp_iter<var_6::var_1>var_8>
            ((__normal_iterator<var_6::type_8**,var_7::vector<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>var_8>
              )var_15,
             (__normal_iterator<var_6::type_8**,var_7::vector<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>var_8>
              )__last,var_2);
  var_12 = (type_8 **)0x0;
LAB_0010ce6f:
  operator_delete(var_12,(type_13 *)&var_13::nothrow);
                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */
  create_note_and_tls_segments(this,layout,&sections);
  if (parameters->target_ == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("../../gold/parameters.h",0x69,"target");
  }
  var_45 = parameters->options_;
  if (var_45 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */
    var_3("../../gold/parameters.h",0x5c,"options");
  }
  var_18 = *(int *)((int)&(var_45->max_page_size_).value + 4);
  var_17 = (int)(var_45->max_page_size_).value;
  if (var_18 == 0 && var_17 == 0) {
    var_10 = *(int *)(parameters->target_ + 4);
    var_18 = *(int *)(var_10 + 0x24);
    var_17 = *(int *)(var_10 + 0x20);
  }
  local_94 = (type_7 *)0x0;
  var_15 = sections.
             super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>.
             _M_impl._M_finish;
  if (sections.super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>.
      _M_impl._M_start ==
      sections.super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>.
      _M_impl._M_finish) {
LAB_0010d48b:
    if (var_15 == (type_6)0x0) {
      return local_94;
    }
    operator_delete(var_15);
    return local_94;
  }
  pOVar12 = *sections.
             super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>.
             _M_impl._M_start;
  var_16 = (pOVar12->super_Output_data).field_0x1c;
  if ((var_16 & 1) != 0) {
    var_40 = 0;
    var_23 = (type_7 *)0x0;
    var_41 = var_16 & 1;
    var_35 = 0;
    var_38 = var_17 - 1;
    var_36 = 0;
    var_10 = var_18 + -1 + (type_4)(var_17 != 0);
    var_33 = (type_7 *)0x0;
    var_28 = 0;
    var_37 = -(var_18 + (type_4)(var_17 != 0));
    var_26 = 0;
    var_29 = 0;
    var_27 = 0;
    var_15 = sections.
               super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>.
               _M_impl._M_start;
    do {
      var_19 = &(pOVar12->super_Output_data).address_;
      var_25 = (type_4)*var_19;
      var_24 = *(int *)((int)&(pOVar12->super_Output_data).address_ + 4);
      local_44 = *var_19;
      var_20 = (pOVar12->super_Output_data)._vptr_Output_data[4];
      if (var_20 == type_8::do_has_load_address) {
        var_21 = (type_2)pOVar12->field_0x90 >> 7;
      }
      else {
        var_44 = (*var_20)(pOVar12);
        var_21 = (type_2)var_44;
      }
      local_54 = *var_15;
      if (var_21 != 0) {
        var_20 = (local_54->super_Output_data)._vptr_Output_data[5];
        if (var_20 == type_8::do_load_address) {
          if (-1 < (char)local_54->field_0x90) {
                    /* WARNING: Subroutine does not return */
            var_3("../../gold/output.h",0x107b,"do_load_address");
          }
          local_44 = local_54->load_address_;
        }
        else {
          var_44 = (*var_20)(local_54);
          local_54 = *var_15;
          local_44 = var_22(extraout_EDX,var_44);
        }
      }
      var_43 = (type_4)(local_54->super_Output_data).data_size_;
      var_44 = *(int *)((int)&(local_54->super_Output_data).data_size_ + 4);
      pEVar1 = &local_54->flags_;
      if ((var_23 == (type_7 *)0x0) ||
         ((local_44._4_4_ - var_24) - (type_4)((type_4)local_44 < var_25) !=
          (var_26 - var_27) - (type_4)(var_28 < var_29) ||
          (type_4)local_44 - var_25 != var_28 - var_29)) {
LAB_0010d018:
        var_35 = Layout::var_30(*pEVar1);
LAB_0010d029:
        var_23 = Layout::var_31(layout,1,var_35);
        *(type_4 *)&var_23->vaddr_ = var_25;
        *(int *)((int)&var_23->vaddr_ + 4) = var_24;
        *(type_4 *)&var_23->paddr_ = (type_4)local_44;
        var_32 = *(type_4 *)((int)&var_23->min_p_align_ + 4);
        *(type_4 *)((int)&var_23->paddr_ + 4) = local_44._4_4_;
        var_23->field_0x19c = var_23->field_0x19c | 2;
        if (var_32 < dot_alignment._4_4_ ||
            var_32 - dot_alignment._4_4_ <
            (type_4)((type_4)var_23->min_p_align_ < (type_4)dot_alignment)) {
          var_23->min_p_align_ = dot_alignment;
        }
        var_40 = 0;
        var_41 = var_16 & 1;
        if (var_33 == (type_7 *)0x0) {
          var_33 = var_23;
        }
      }
      else {
        bVar10 = var_34(var_28,var_35);
        var_35 = var_28 + var_35;
        var_36 = var_26 + var_36 + (type_4)bVar10;
        var_32 = local_44._4_4_;
        var_39 = (type_4)local_44;
        if (var_18 != 0 || var_17 != 0) {
          var_36 = var_36 + var_10 + (type_4)var_34(var_35,var_38) & var_37;
          var_35 = -var_17 & var_35 + var_38;
          var_32 = local_44._4_4_ + var_10 + (type_4)var_34((type_4)local_44,var_38) & var_37;
          var_39 = -var_17 & (type_4)local_44 + var_38;
        }
        if (var_36 < var_32 || var_36 - var_32 < (type_4)(var_35 < var_39)) goto LAB_0010d018;
        if (var_40 != 0) {
          if (local_54->type_ != 8) goto LAB_0010d018;
          if ((*pEVar1 & 0x400) == 0) goto LAB_0010d2c0;
          var_35 = Layout::var_30(*pEVar1);
          goto LAB_0010d029;
        }
LAB_0010d2c0:
        if ((var_41 != 0) && ((*pEVar1 & 1) != 0)) {
          if (parameters->options_ == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_3("../../gold/parameters.h",0x5c,"options");
          }
          var_41 = (parameters->options_->omagic_).value;
          if ((bool)var_41 == false) goto LAB_0010d018;
        }
        var_35 = Layout::var_30(*pEVar1);
      }
      Output_segment::var_42(var_23,layout,*var_15,var_35);
      var_32 = (type_4)(*var_15)->flags_;
      if ((var_32 & 1) != 0) {
        var_41 = 0;
      }
      if (((*var_15)->type_ == 8) &&
         (var_21 = ((type_2)(var_32 >> 10) ^ 1) & (var_43 != 0 || var_44 != 0), var_21 != 0)) {
        var_40 = var_21;
      }
      var_15 = var_15 + 1;
      if (sections.super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>
          ._M_impl._M_finish == var_15) {
        var_15 = sections.
                   super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>
                   ._M_impl._M_start;
        if (var_33 != (type_7 *)0x0) {
          var_45 = parameters->options_;
          if (var_45 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_3("../../gold/parameters.h",0x5c,"options");
          }
          if (((var_45->nmagic_).value == false) && ((var_45->omagic_).value == false)) {
            var_49 = var_46(this,layout);
            var_37 = (type_4)var_33->vaddr_;
            var_38 = *(type_4 *)((int)&var_33->vaddr_ + 4);
            var_25 = (type_4)var_33->paddr_;
            var_43 = *(type_4 *)((int)&var_33->paddr_ + 4);
            var_48 = var_47(this,var_33->paddr_,var_49);
            local_44._0_4_ = (type_4)var_48;
            local_44._4_4_ = (type_4)(var_48 >> 0x20);
            var_15 = sections.
                       super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>
                       ._M_impl._M_start;
            if ((var_43 & var_18 + -1 + (type_4)(var_17 != 0)) <
                (type_4)((var_25 & var_17 - 1U) < var_49)) {
              if ((local_44._4_4_ <= var_43 &&
                   (type_4)(var_25 < (type_4)local_44) <= var_43 - local_44._4_4_) &&
                 (local_44._4_4_ <= var_38 &&
                  (type_4)(var_37 < (type_4)local_44) <= var_38 - local_44._4_4_)) {
                if ((this->memory_regions_ != (type_14 *)0x0) &&
                   (bVar10 = var_50(this,(type_15 *)0x0,layout,
                                             var_22((var_43 - local_44._4_4_) -
                                                      (type_4)(var_25 < (type_4)local_44),
                                                      var_25 - (type_4)local_44),var_48), !bVar10)) {
                  format = (char *)var_51(
                                          "creating a segment to contain the file and program headers outside of any MEMORY region"
                                          );
                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */
                  var_52(format);
                }
                local_94 = Layout::var_31(layout,1,4);
                *(type_4 *)&local_94->vaddr_ = var_37 - (type_4)local_44;
                *(type_4 *)((int)&local_94->vaddr_ + 4) =
                     (var_38 - local_44._4_4_) - (type_4)(var_37 < (type_4)local_44);
                local_94->field_0x19c = local_94->field_0x19c | 2;
                *(type_4 *)&local_94->paddr_ = var_25 - (type_4)local_44;
                *(type_4 *)((int)&local_94->paddr_ + 4) =
                     (var_43 - local_44._4_4_) - (type_4)(var_25 < (type_4)local_44);
                var_15 = sections.
                           super__Vector_base<var_6::type_8*,var_7::allocator<var_6::type_8*>var_8>
                           ._M_impl._M_start;
              }
            }
            else {
              local_94 = var_33;
              *(type_4 *)&var_33->vaddr_ = var_37 - (type_4)local_44;
              *(type_4 *)((int)&var_33->vaddr_ + 4) =
                   (var_38 - local_44._4_4_) - (type_4)(var_37 < (type_4)local_44);
              *(type_4 *)&var_33->paddr_ = var_25 - (type_4)local_44;
              var_33->field_0x19c = var_33->field_0x19c | 2;
              *(type_4 *)((int)&var_33->paddr_ + 4) =
                   (var_43 - local_44._4_4_) - (type_4)(var_25 < (type_4)local_44);
            }
          }
        }
        goto LAB_0010d48b;
      }
      pOVar12 = *var_15;
      var_28 = (type_4)local_44;
      var_26 = local_44._4_4_;
      var_29 = var_25;
      var_27 = var_24;
      var_35 = var_43;
      var_36 = var_44;
    } while (((pOVar12->super_Output_data).field_0x1c & 1) != 0);
  }
                    /* WARNING: Subroutine does not return */
  var_3("../../gold/output.h",0xc5,"address");
}


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

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

int MASKED(char *param_1,undefined4 param_2,uint param_3,uint param_4)

{
  byte bVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  bool bVar5;
  longlong lVar6;
  longlong lVar7;
  longlong lVar8;
  longlong lVar9;
  byte bVar10;
  char cVar11;
  int iVar12;
  int iVar13;
  uint uVar14;
  uint uVar15;
  uint uVar16;
  int *piVar17;
  undefined4 uVar18;
  uint uVar19;
  uint uVar20;
  int *piVar21;
  longlong lVar22;
  undefined8 uVar23;
  int local_9c;
  int local_98;
  int local_94;
  int local_90;
  byte local_7d;
  int local_7c;
  int local_78;
  int *local_54;
  int local_50;
  uint local_4c;
  uint local_48;
  byte local_34;
  int *local_28;
  int *local_24;
  undefined4 local_20;
  
  if (*param_1 == '\0') {
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/script-sections.cc",0xf83,"create_segments",param_1);
  }
  if (*(int *)(DAT_00302378 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);
  }
  if (*(char *)(*(int *)(DAT_00302378 + 8) + 0x318d) != '\0') {
    return 0;
  }
  if (*(int *)(param_1 + 0x10) != 0) {
    FUN_0010b6f0(param_1,param_2);
    iVar12 = FUN_00108c00(param_1,param_2,param_3,param_4);
    return iVar12;
  }
  local_28 = (int *)0x0;
  local_24 = (int *)0x0;
  local_20 = 0;
                    /* try { // try from 0010cde5 to 0010cde9 has its CatchHandler @ 0010d648 */
  FUN_0007f630(param_2,&local_28);
  piVar21 = local_24;
  piVar17 = local_28;
  uVar18 = *(undefined4 *)(param_1 + 4);
  iVar12 = (int)local_24 - (int)local_28;
  if (iVar12 < 0x7ffffffd) {
    if (iVar12 < 1) goto LAB_0010d4d8;
    iVar12 = iVar12 >> 2;
  }
  else {
    iVar12 = 0x1fffffff;
  }
  do {
    iVar13 = FUN_0017eb90(iVar12 << 2,&DAT_0023a423);
    if (iVar13 != 0) {
                    /* try { // try from 0010ce67 to 0010ce6b has its CatchHandler @ 0010d640 */
      FUN_001142e0(piVar17,piVar21,iVar13,iVar12,uVar18);
      goto LAB_0010ce6f;
    }
    iVar12 = iVar12 >> 1;
  } while (iVar12 != 0);
LAB_0010d4d8:
                    /* try { // try from 0010d4e4 to 0010d4e8 has its CatchHandler @ 0010d638 */
  FUN_001139b0(piVar17,piVar21,uVar18);
  iVar13 = 0;
LAB_0010ce6f:
  FUN_00180760(iVar13,&DAT_0023a423);
                    /* try { // try from 0010ce88 to 0010d440 has its CatchHandler @ 0010d648 */
  FUN_00108730(param_1,param_2,&local_28);
  if (*(int *)(DAT_00302378 + 0xc) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0005f0b0("../../gold/parameters.h",0x69,"target",DAT_00302378);
  }
  iVar12 = *(int *)(DAT_00302378 + 8);
  if (iVar12 == 0) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 0010d5e8 to 0010d637 has its CatchHandler @ 0010d648 */
    FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",0);
  }
  local_98 = *(int *)(iVar12 + 0x521c);
  local_9c = *(int *)(iVar12 + 0x5218);
  if (local_98 == 0 && local_9c == 0) {
    iVar12 = *(int *)(*(int *)(DAT_00302378 + 0xc) + 4);
    local_98 = *(int *)(iVar12 + 0x24);
    local_9c = *(int *)(iVar12 + 0x20);
  }
  local_94 = 0;
  piVar17 = local_24;
  if (local_28 == local_24) {
LAB_0010d48b:
    if (piVar17 == (int *)0x0) {
      return local_94;
    }
    FUN_001807a0(piVar17);
    return local_94;
  }
  piVar17 = (int *)*local_28;
  bVar1 = *(byte *)(piVar17 + 7);
  if ((bVar1 & 1) != 0) {
    local_7d = 0;
    local_50 = 0;
    local_34 = bVar1 & 1;
    local_4c = 0;
    local_48 = 0;
    lVar7 = CONCAT44(local_98 + -1 + (uint)(local_9c != 0),local_9c + -1);
    local_90 = 0;
    uVar19 = -(local_98 + (uint)(local_9c != 0));
    local_7c = 0;
    local_78 = 0;
    piVar21 = local_28;
    lVar8 = 0;
    do {
      lVar9 = CONCAT44(local_78,local_7c);
      local_7c = (int)*(longlong *)(piVar17 + 1);
      local_78 = piVar17[2];
      lVar6 = *(longlong *)(piVar17 + 1);
      if (*(code **)(*piVar17 + 0x10) == FUN_00088ef0) {
        bVar10 = *(byte *)(piVar17 + 0x24) >> 7;
      }
      else {
        bVar10 = (**(code **)(*piVar17 + 0x10))(piVar17);
      }
      local_54 = (int *)*piVar21;
      lVar22 = lVar6;
      if (bVar10 != 0) {
        if (*(code **)(*local_54 + 0x14) == FUN_00089130) {
          if (-1 < (char)local_54[0x24]) {
                    /* WARNING: Subroutine does not return */
            FUN_0005f0b0("../../gold/output.h",0x107b,"do_load_address");
          }
          lVar22 = *(longlong *)(local_54 + 0xd);
        }
        else {
          lVar22 = (**(code **)(*local_54 + 0x14))(local_54);
          local_54 = (int *)*piVar21;
        }
      }
      iVar12 = local_54[3];
      iVar13 = local_54[0x16];
      iVar2 = local_54[4];
      uVar3 = local_54[0x15];
      if ((local_50 == 0) || (lVar22 - lVar6 != lVar8 - lVar9)) {
LAB_0010d018:
        local_4c = FUN_0007b810(uVar3,iVar13);
LAB_0010d029:
        local_50 = FUN_0007f710(param_2,1,local_4c);
        *(int *)(local_50 + 0x15c) = local_7c;
        *(int *)(local_50 + 0x160) = local_78;
        *(longlong *)(local_50 + 0x164) = lVar22;
        *(byte *)(local_50 + 0x19c) = *(byte *)(local_50 + 0x19c) | 2;
        if (*(uint *)(local_50 + 0x180) < param_4 ||
            *(uint *)(local_50 + 0x180) - param_4 < (uint)(*(uint *)(local_50 + 0x17c) < param_3)) {
          *(uint *)(local_50 + 0x17c) = param_3;
          *(uint *)(local_50 + 0x180) = param_4;
        }
        local_7d = 0;
        local_34 = bVar1 & 1;
        if (local_90 == 0) {
          local_90 = local_50;
        }
      }
      else {
        lVar8 = lVar8 + CONCAT44(local_48,local_4c);
        lVar6 = lVar22;
        if (local_98 != 0 || local_9c != 0) {
          lVar8 = lVar8 + lVar7;
          lVar8 = CONCAT44((uint)((ulonglong)lVar8 >> 0x20) & uVar19,-local_9c & (uint)lVar8);
          lVar6 = lVar22 + lVar7;
          lVar6 = CONCAT44((uint)((ulonglong)lVar6 >> 0x20) & uVar19,-local_9c & (uint)lVar6);
        }
        local_48 = (uint)((ulonglong)lVar8 >> 0x20);
        local_4c = (uint)lVar8;
        uVar14 = (uint)((ulonglong)lVar6 >> 0x20);
        if (local_48 < uVar14 || local_48 - uVar14 < (uint)(local_4c < (uint)lVar6))
        goto LAB_0010d018;
        if (local_7d != 0) {
          if (local_54[0x14] != 8) goto LAB_0010d018;
          if ((uVar3 & 0x400) == 0) goto LAB_0010d2c0;
          local_4c = FUN_0007b810(uVar3,iVar13);
          goto LAB_0010d029;
        }
LAB_0010d2c0:
        if ((local_34 != 0) && ((uVar3 & 1) != 0)) {
          if (*(int *)(DAT_00302378 + 8) == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",piVar21);
          }
          local_34 = *(byte *)(*(int *)(DAT_00302378 + 8) + 0x253d);
          if (local_34 == 0) goto LAB_0010d018;
        }
        local_4c = FUN_0007b810(uVar3,iVar13);
      }
      FUN_000bfab0(local_50,param_2,*piVar21,local_4c);
      iVar13 = *piVar21;
      uVar18 = *(undefined4 *)(iVar13 + 0x58);
      if ((*(uint *)(iVar13 + 0x54) & 1) != 0) {
        local_34 = 0;
      }
      if (*(int *)(iVar13 + 0x50) == 8) {
        bVar5 = iVar12 != 0 || iVar2 != 0;
        uVar18 = CONCAT31((int3)((uint)uVar18 >> 8),bVar5);
        bVar10 = ((byte)(*(uint *)(iVar13 + 0x54) >> 10) ^ 1) & bVar5;
        if (bVar10 != 0) {
          local_7d = bVar10;
        }
      }
      piVar21 = piVar21 + 1;
      if (local_24 == piVar21) {
        piVar17 = local_28;
        if (local_90 != 0) {
          iVar12 = *(int *)(DAT_00302378 + 8);
          if (iVar12 == 0) {
                    /* WARNING: Subroutine does not return */
            FUN_0005f0b0("../../gold/parameters.h",0x5c,"options",uVar18);
          }
          if ((*(char *)(iVar12 + 0x24c1) == '\0') && (*(char *)(iVar12 + 0x253d) == '\0')) {
            uVar15 = FUN_001085c0(param_1,param_2);
            uVar19 = *(uint *)(local_90 + 0x15c);
            uVar3 = *(uint *)(local_90 + 0x160);
            uVar14 = *(uint *)(local_90 + 0x164);
            uVar4 = *(uint *)(local_90 + 0x168);
            uVar23 = FUN_00108650(param_1,uVar14,uVar4,uVar15);
            uVar20 = (uint)((ulonglong)uVar23 >> 0x20);
            uVar16 = (uint)uVar23;
            piVar17 = local_28;
            if ((uVar4 & local_98 + -1 + (uint)(local_9c != 0)) <
                (uint)((uVar14 & local_9c - 1U) < uVar15)) {
              if ((uVar20 <= uVar4 && (uint)(uVar14 < uVar16) <= uVar4 - uVar20) &&
                 (uVar20 <= uVar3 && (uint)(uVar19 < uVar16) <= uVar3 - uVar20)) {
                if ((*(int *)(param_1 + 0xc) != 0) &&
                   (cVar11 = FUN_00107300(param_1,0,param_2,uVar14 - uVar16,
                                          (uVar4 - uVar20) - (uint)(uVar14 < uVar16),uVar23),
                   cVar11 == '\0')) {
                  uVar18 = gettext(
                                  "creating a segment to contain the file and program headers outside of any MEMORY region"
                                  );
                    /* try { // try from 0010d557 to 0010d59e has its CatchHandler @ 0010d648 */
                  FUN_0005ad30(uVar18);
                }
                local_94 = FUN_0007f710(param_2,1,4);
                *(uint *)(local_94 + 0x15c) = uVar19 - uVar16;
                *(uint *)(local_94 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);
                *(byte *)(local_94 + 0x19c) = *(byte *)(local_94 + 0x19c) | 2;
                *(uint *)(local_94 + 0x164) = uVar14 - uVar16;
                *(uint *)(local_94 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);
                piVar17 = local_28;
              }
            }
            else {
              local_94 = local_90;
              *(uint *)(local_90 + 0x15c) = uVar19 - uVar16;
              *(uint *)(local_90 + 0x160) = (uVar3 - uVar20) - (uint)(uVar19 < uVar16);
              *(uint *)(local_90 + 0x164) = uVar14 - uVar16;
              *(byte *)(local_90 + 0x19c) = *(byte *)(local_90 + 0x19c) | 2;
              *(uint *)(local_90 + 0x168) = (uVar4 - uVar20) - (uint)(uVar14 < uVar16);
            }
          }
        }
        goto LAB_0010d48b;
      }
      piVar17 = (int *)*piVar21;
      local_4c = iVar12;
      local_48 = iVar2;
      lVar8 = lVar22;
    } while ((*(byte *)(piVar17 + 7) & 1) != 0);
  }
                    /* WARNING: Subroutine does not return */
  FUN_0005f0b0("../../gold/output.h",0xc5,"address");
}

