
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: add_input_section<32, false>
   DWARF original prototype: off_t add_input_section<32,_false>(Output_section * this, Layout *
   layout, Sized_relobj_file<32,_false> * object, uint shndx, char * secname, Shdr<32,_false> *
   shdr, uint reloc_shndx, bool have_sections_script) */

off_t __thiscall
gold::Output_section::add_input_section<32,_false>
          (Output_section *this,Layout *layout,Sized_relobj_file<32,_false> *object,uint shndx,
          char *secname,Shdr<32,_false> *shdr,uint reloc_shndx,bool have_sections_script)

{
  _Rb_tree_header *p_Var1;
  _Base_ptr *pp_Var2;
  Compressed_section_map *pCVar3;
  _Base_ptr p_Var4;
  iterator __position;
  Target *pTVar5;
  ulong uVar6;
  undefined1 keeps_input_sections;
  char cVar7;
  uint uVar8;
  ulong len;
  pointer pcVar9;
  size_t __n;
  char *pcVar10;
  off_t oVar11;
  char *format;
  Output_data_const *this_00;
  pointer pcVar12;
  _Base_ptr p_Var13;
  _Base_ptr p_Var14;
  long lVar15;
  Shdr_data<32> *pSVar16;
  int iVar17;
  ulong uVar18;
  ulong addralign;
  byte *pbVar19;
  byte *pbVar20;
  Output_section *this_01;
  bool bVar21;
  bool bVar22;
  byte bVar23;
  uint64_t local_a0;
  size_type __dnew;
  string fill_data;
  undefined1 local_58 [40];
  
  bVar23 = 0;
  pSVar16 = shdr->p_;
  uVar18 = (ulong)pSVar16->sh_addralign;
  len = (ulong)pSVar16->sh_size;
  pCVar3 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.compressed_sections_;
  if (pCVar3 == (Compressed_section_map *)0x0) {
LAB_002269ca:
    uVar6 = uVar18 - 1 & uVar18;
  }
  else {
    p_Var1 = &(pCVar3->_M_t)._M_impl.super__Rb_tree_header;
    p_Var4 = (pCVar3->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;
    p_Var13 = &p_Var1->_M_header;
    if (p_Var4 == (_Base_ptr)0x0) goto LAB_002269ca;
    do {
      while (p_Var14 = p_Var4, shndx <= p_Var14[1]._M_color) {
        p_Var4 = p_Var14->_M_left;
        p_Var13 = p_Var14;
        if (p_Var14->_M_left == (_Base_ptr)0x0) goto LAB_002269bb;
      }
      pp_Var2 = &p_Var14->_M_right;
      p_Var4 = *pp_Var2;
      p_Var14 = p_Var13;
    } while (*pp_Var2 != (_Base_ptr)0x0);
LAB_002269bb:
    if ((p_Var1 == (_Rb_tree_header *)p_Var14) ||
       (shndx < (uint)((_Rb_tree_header *)p_Var14)->_M_node_count)) goto LAB_002269ca;
    len = *(ulong *)((long)p_Var14 + 0x28);
    uVar18 = *(ulong *)((undefined1 *)((long)p_Var14 + 0x28) + 0x10);
    uVar6 = uVar18 - 1 & uVar18;
  }
  addralign = uVar18;
  if (uVar6 != 0) {
    pcVar10 = (char *)gettext("invalid alignment %lu for section \"%s\"");
    addralign = 1;
    Object::error((Object *)object,pcVar10,uVar18,secname);
    pSVar16 = shdr->p_;
  }
  bVar21 = this->addralign_ < addralign;
  bVar22 = this->addralign_ == addralign;
  if (bVar21) {
    this->addralign_ = addralign;
  }
  lVar15 = 0xb;
  uVar8 = pSVar16->sh_flags;
  pbVar19 = (byte *)secname;
  pbVar20 = (byte *)".debug_str";
  do {
    if (lVar15 == 0) break;
    lVar15 = lVar15 + -1;
    bVar21 = *pbVar19 < *pbVar20;
    bVar22 = *pbVar19 == *pbVar20;
    pbVar19 = pbVar19 + (ulong)bVar23 * -2 + 1;
    pbVar20 = pbVar20 + (ulong)bVar23 * -2 + 1;
  } while (bVar22);
  if ((!bVar21 && !bVar22) == bVar21) {
    local_a0 = 1;
    uVar8 = uVar8 | 0x30;
  }
  else {
    local_a0 = (uint64_t)pSVar16->sh_entsize;
  }
  this_01 = this;
  update_flags_for_input_section(this,(ulong)uVar8);
  if ((this->field_0xca & 2) == 0) {
    set_entsize(this_01,local_a0);
  }
  if (((((uVar8 & 0x10) != 0) && (reloc_shndx == 0)) && (shdr->p_->sh_size != 0)) &&
     (bVar21 = Parameters::incremental(parameters), !bVar21)) {
    if (((this->field_0xca & 0x10) != 0) || (have_sections_script)) {
      keeps_input_sections = true;
    }
    else {
      pTVar5 = parameters->target_;
      if (pTVar5 == (Target *)0x0) goto LAB_00227090;
      if ((parameters->options_ == (General_options *)0x0) ||
         (keeps_input_sections = true, (parameters->debug_ & 8) == 0)) {
        if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {
          keeps_input_sections = Target::do_may_relax(pTVar5);
        }
        else {
          keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();
        }
      }
    }
    bVar21 = add_merge_input_section
                       (this,(Relobj *)object,shndx,(ulong)uVar8,local_a0,addralign,
                        (bool)keeps_input_sections);
    if (bVar21) {
      return -1;
    }
  }
  bVar23 = this->field_0xca;
  if ((bVar23 & 0x20) != 0) {
    oVar11 = Free_list::allocate(&this->free_list_,len,addralign,0);
    if (oVar11 != -1) {
      return oVar11;
    }
    pcVar10 = this->name_;
    format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");
                    /* WARNING: Subroutine does not return */
    gold_fallback(format,pcVar10);
  }
  pcVar12 = (pointer)(this->super_Output_data).data_size_;
  pcVar9 = pcVar12;
  if (addralign != 0) {
    pcVar9 = (pointer)((ulong)(pcVar12 + (addralign - 1)) & -addralign);
  }
  if (((this->super_Output_data).field_0x20 & 2) != 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");
  }
  (this->super_Output_data).data_size_ = (off_t)(pcVar9 + len);
  if (((bVar23 & 1) != 0) || (have_sections_script)) {
LAB_00226a9c:
    if (((long)pcVar9 <= (long)pcVar12) || ((bVar23 & 1) != 0)) goto LAB_00226aaa;
    if (!have_sections_script) {
      if ((uVar8 & 4) != 0) {
LAB_00226d8d:
        pTVar5 = parameters->target_;
        if (pTVar5 == (Target *)0x0) goto LAB_00227090;
        if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) != '\0') {
          local_58._8_8_ = (long)pcVar9 - (long)pcVar12;
          if ((this->input_sections_).
              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
              ._M_impl._M_finish ==
              (this->input_sections_).
              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
              ._M_impl._M_start) {
            local_58._0_8_ = pcVar12;
            std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::
            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);
            bVar23 = this->field_0xca;
          }
          else {
            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);
                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */
            this_00 = (Output_data_const *)operator_new(0x58);
                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */
            Output_data_const::Output_data_const(this_00,&fill_data,1);
            local_58._24_4_ = 0;
            local_58._0_8_ = (pointer)0xffffffff;
            local_58._8_8_ = 0;
            local_58._16_8_ = this_00;
                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */
            std::
            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
            ::emplace_back<gold::Output_section::Input_section>
                      (&this->input_sections_,(Input_section *)local_58);
            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=
                &fill_data.field_2) {
              operator_delete((undefined1 *)
                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,
                                       (uint)fill_data._M_dataplus._M_p));
            }
            bVar23 = this->field_0xca;
          }
        }
      }
LAB_00226e42:
      if ((bVar23 & 0x10) != 0) goto LAB_00226aba;
      goto LAB_00226e4b;
    }
  }
  else {
    if ((uVar8 & 4) == 0) {
      if ((long)pcVar12 < (long)pcVar9) goto LAB_00226e42;
    }
    else {
      pTVar5 = parameters->target_;
      if (pTVar5 == (Target *)0x0) goto LAB_00227090;
      if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) == '\0') {
        if ((long)pcVar12 < (long)pcVar9) goto LAB_00226d8d;
      }
      else {
        if ((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)) {
          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {
            cVar7 = Target::do_may_relax(pTVar5);
          }
          else {
            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();
          }
          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {
            bVar23 = this->field_0xca;
            goto LAB_00226a9c;
          }
        }
        if ((this->fills_).
            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>
            ._M_impl._M_finish !=
            (this->fills_).
            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>
            ._M_impl._M_start) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");
        }
        bVar23 = this->field_0xca | 1;
        this->field_0xca = bVar23;
      }
    }
LAB_00226aaa:
    if (((bVar23 & 0x10) == 0) && (!have_sections_script)) {
LAB_00226e4b:
      if (((this->input_sections_).
           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
           ._M_impl._M_finish ==
           (this->input_sections_).
           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))) {
        if (parameters->options_ == (General_options *)0x0) goto LAB_00227060;
        if ((parameters->options_->Map_).user_set_via_option == false) {
          pTVar5 = parameters->target_;
          if (pTVar5 == (Target *)0x0) {
LAB_00227090:
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable("../../gold/parameters.h",0x69,"target");
          }
          if ((parameters->debug_ & 8) == 0) {
            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {
              cVar7 = Target::do_may_relax(pTVar5);
            }
            else {
              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();
            }
            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {
              return (off_t)pcVar9;
            }
          }
        }
      }
    }
  }
LAB_00226aba:
  lVar15 = 0;
  if (addralign != 0) {
    for (; (addralign >> lVar15 & 1) == 0; lVar15 = lVar15 + 1) {
    }
  }
  iVar17 = (int)lVar15;
  if (addralign == 0) {
    iVar17 = -1;
  }
  fill_data.field_2._8_4_ = 0;
  fill_data._M_dataplus._M_p._4_4_ = iVar17 + 1;
  fill_data._M_dataplus._M_p._0_4_ = shndx;
  if (shndx + 4 < 4) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/output.h",0xe9a,"Input_section");
  }
  fill_data._M_string_length = len;
  fill_data.field_2._M_allocated_capacity = (size_type)object;
  if (parameters->options_ == (General_options *)0x0) {
LAB_00227060:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->section_ordering_file_).value == (char *)0x0) goto LAB_00226b96;
  pcVar12 = local_58 + 0x10;
  local_58._0_8_ = pcVar12;
  __n = strlen(secname);
  __dnew = __n;
  if (__n < 0x10) {
    if (__n == 1) {
      local_58[0x10] = *secname;
    }
    else if (__n != 0) goto LAB_00226f36;
  }
  else {
    pcVar12 = (pointer)std::string::_M_create((string *)local_58,&__dnew,0);
    local_58._16_8_ = __dnew;
    local_58._0_8_ = pcVar12;
LAB_00226f36:
    memcpy(pcVar12,secname,__n);
    pcVar12 = (pointer)local_58._0_8_;
  }
  pcVar12[__dnew] = '\0';
  local_58._8_8_ = __dnew;
                    /* try { // try from 00226b6a to 00226b6e has its CatchHandler @ 002270c0 */
  uVar8 = Layout::find_section_order_index(layout,(string *)local_58);
  if ((undefined1 *)local_58._0_8_ != local_58 + 0x10) {
    operator_delete((void *)local_58._0_8_);
  }
  if (uVar8 != 0) {
    this->field_0xc9 = this->field_0xc9 | 2;
    fill_data.field_2._8_4_ = uVar8;
  }
LAB_00226b96:
  __position._M_current =
       (this->input_sections_).
       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
       ._M_impl._M_finish;
  if (__position._M_current ==
      (this->input_sections_).
      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
      ._M_impl._M_end_of_storage) {
    std::
    vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
    ::_M_realloc_insert<const_gold::Output_section::Input_section&>
              (&this->input_sections_,__position,(Input_section *)&fill_data);
  }
  else {
    (__position._M_current)->shndx_ =
         (int)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p);
    (__position._M_current)->p2align_ =
         (int)(CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) >> 0x20);
    ((__position._M_current)->u1_).entsize = fill_data._M_string_length;
    (__position._M_current)->u2_ =
         (anon_union_8_4_139239c7_for_u2_)fill_data.field_2._M_allocated_capacity;
    *(ulong *)&(__position._M_current)->section_order_index_ =
         CONCAT44(fill_data.field_2._12_4_,fill_data.field_2._8_4_);
    (this->input_sections_).
    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>
    ._M_impl._M_finish = __position._M_current + 1;
  }
  return (off_t)pcVar9;
}



size_t * FUN_00226940(long param_1,long param_2,long param_3,uint param_4,byte *param_5,
                     long *param_6,int param_7,char param_8)

{
  long *plVar1;
  undefined4 uVar2;
  undefined8 *puVar3;
  code *pcVar4;
  ulong uVar5;
  long lVar6;
  undefined1 uVar7;
  char cVar8;
  int iVar9;
  ulong uVar10;
  size_t *psVar11;
  size_t sVar12;
  undefined8 uVar13;
  size_t *psVar14;
  long lVar15;
  long lVar16;
  long lVar17;
  long lVar18;
  ulong uVar19;
  ulong uVar20;
  byte *pbVar21;
  byte *pbVar22;
  uint uVar23;
  bool bVar24;
  bool bVar25;
  byte bVar26;
  size_t sStack_80;
  uint local_78;
  int iStack_74;
  ulong uStack_70;
  long lStack_68;
  int iStack_60;
  undefined4 uStack_5c;
  size_t *local_58;
  size_t local_50;
  size_t local_48;
  undefined4 local_40;
  
  bVar26 = 0;
  lVar18 = *param_6;
  uVar19 = (ulong)*(uint *)(lVar18 + 0x20);
  uVar10 = (ulong)*(uint *)(lVar18 + 0x14);
  lVar17 = *(long *)(param_3 + 0x48);
  if (lVar17 == 0) {
LAB_002269ca:
    uVar5 = uVar19 - 1 & uVar19;
  }
  else {
    lVar6 = *(long *)(lVar17 + 0x10);
    lVar15 = lVar17 + 8;
    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;
    do {
      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {
        lVar6 = *(long *)(lVar16 + 0x10);
        lVar15 = lVar16;
        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;
      }
      plVar1 = (long *)(lVar16 + 0x18);
      lVar6 = *plVar1;
      lVar16 = lVar15;
    } while (*plVar1 != 0);
LAB_002269bb:
    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;
    uVar10 = *(ulong *)(lVar16 + 0x28);
    uVar19 = *(ulong *)(lVar16 + 0x38);
    uVar5 = uVar19 - 1 & uVar19;
  }
  uVar20 = uVar19;
  if (uVar5 != 0) {
    uVar13 = gettext("invalid alignment %lu for section \"%s\"");
    uVar20 = 1;
    FUN_001bd150(param_3,uVar13,uVar19,param_5);
    lVar18 = *param_6;
  }
  bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;
  bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;
  if (bVar24) {
    *(ulong *)(param_1 + 0x30) = uVar20;
  }
  lVar17 = 0xb;
  uVar23 = *(uint *)(lVar18 + 8);
  uVar2 = *(undefined4 *)(lVar18 + 0x24);
  pbVar21 = param_5;
  pbVar22 = (byte *)".debug_str";
  do {
    if (lVar17 == 0) break;
    lVar17 = lVar17 + -1;
    bVar24 = *pbVar21 < *pbVar22;
    bVar25 = *pbVar21 == *pbVar22;
    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;
    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;
  } while (bVar25);
  if ((!bVar24 && !bVar25) == bVar24) {
    uVar2 = 1;
    uVar23 = uVar23 | 0x30;
  }
  FUN_001f5d70(param_1,uVar23);
  if ((*(byte *)(param_1 + 0xca) & 2) == 0) {
    FUN_001f48e0();
  }
  if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;
  while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {
    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);
    if (psVar14 != (size_t *)0xffffffffffffffff) {
      return psVar14;
    }
    uVar20 = *(ulong *)(param_1 + 0x28);
    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");
    FUN_00178280(uVar13,uVar20);
    param_6 = (long *)0xffffffffffffffff;
LAB_00226c80:
    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))
    {
      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {
        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;
        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||
           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {
          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);
          if (pcVar4 == FUN_001b1290) {
            uVar7 = FUN_001f4a70();
          }
          else {
            uVar7 = (*pcVar4)();
          }
        }
      }
      else {
        uVar7 = 1;
      }
      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);
      if (cVar8 != '\0') {
        return (size_t *)0xffffffffffffffff;
      }
    }
  }
  psVar14 = *(size_t **)(param_1 + 0x10);
  psVar11 = psVar14;
  if (uVar20 != 0) {
    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);
  }
  if ((*(byte *)(param_1 + 0x20) & 2) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");
  }
  *(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;
  if (((bVar26 & 1) == 0) && (param_8 == '\0')) {
    if ((uVar23 & 4) == 0) {
      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;
LAB_00226e42:
      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;
    }
    else {
      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);
      if (plVar1 == (long *)0x0) goto LAB_00227090;
      if (*(char *)(plVar1[1] + 0xe) == '\0') {
        if ((long)psVar14 < (long)psVar11) {
LAB_00226d8d:
          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);
          if (plVar1 == (long *)0x0) goto LAB_00227090;
          if (*(char *)(plVar1[1] + 0xe) != '\0') {
            local_50 = (long)psVar11 - (long)psVar14;
            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {
              local_58 = psVar14;
              FUN_00213c70(param_1 + 0xa8,&local_58);
              bVar26 = *(byte *)(param_1 + 0xca);
            }
            else {
              (**(code **)(*plVar1 + 0x30))(&local_78);
                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */
              sVar12 = FUN_002d94a0(0x58);
                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */
              FUN_001ffa20(sVar12,&local_78,1);
              local_40 = 0;
              local_58 = (size_t *)0xffffffff;
              local_50 = 0;
              local_48 = sVar12;
                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */
              FUN_0020d8b0(param_1 + 0x88,&local_58);
              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {
                FUN_002dac70();
              }
              bVar26 = *(byte *)(param_1 + 0xca);
            }
          }
          goto LAB_00226e42;
        }
      }
      else {
        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {
          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {
            cVar8 = FUN_001f4a70();
          }
          else {
            cVar8 = (**(code **)(*plVar1 + 0xe0))();
          }
          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {
            bVar26 = *(byte *)(param_1 + 0xca);
            goto LAB_00226a9c;
          }
        }
        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");
        }
        bVar26 = *(byte *)(param_1 + 0xca) | 1;
        *(byte *)(param_1 + 0xca) = bVar26;
      }
LAB_00226aaa:
      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;
    }
    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&
       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {
      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;
      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {
        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {
LAB_00227090:
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/parameters.h",0x69,"target");
        }
        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {
          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);
          if (pcVar4 == FUN_001b1290) {
            cVar8 = FUN_001f4a70();
          }
          else {
            cVar8 = (*pcVar4)();
          }
          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {
            return psVar11;
          }
        }
      }
    }
  }
  else {
LAB_00226a9c:
    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;
    if (param_8 == '\0') {
      if ((uVar23 & 4) != 0) goto LAB_00226d8d;
      goto LAB_00226e42;
    }
  }
LAB_00226aba:
  lVar18 = 0;
  if (uVar20 != 0) {
    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {
    }
  }
  iStack_74 = (int)lVar18;
  if (uVar20 == 0) {
    iStack_74 = -1;
  }
  iStack_60 = 0;
  iStack_74 = iStack_74 + 1;
  local_78 = param_4;
  if (param_4 + 4 < 4) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");
  }
  uStack_70 = uVar10;
  lStack_68 = param_3;
  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {
LAB_00227060:
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/parameters.h",0x5c,"options");
  }
  if (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;
  psVar14 = &local_48;
  local_58 = psVar14;
  sVar12 = strlen((char *)param_5);
  sStack_80 = sVar12;
  if (sVar12 < 0x10) {
    if (sVar12 == 1) {
      local_48 = CONCAT71(local_48._1_7_,*param_5);
    }
    else if (sVar12 != 0) goto LAB_00226f36;
  }
  else {
    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);
    local_48 = sStack_80;
    local_58 = psVar14;
LAB_00226f36:
    memcpy(psVar14,param_5,sVar12);
    psVar14 = local_58;
  }
  *(undefined1 *)((long)psVar14 + sStack_80) = 0;
  local_50 = sStack_80;
                    /* try { // try from 00226b6a to 00226b6e has its CatchHandler @ 002270c0 */
  iVar9 = FUN_001ac380(param_2,&local_58);
  if (local_58 != &local_48) {
    FUN_002dac70();
  }
  if (iVar9 != 0) {
    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;
    iStack_60 = iVar9;
  }
LAB_00226b96:
  puVar3 = *(undefined8 **)(param_1 + 0x90);
  if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {
    *puVar3 = CONCAT44(iStack_74,local_78);
    puVar3[1] = uStack_70;
    puVar3[2] = lStack_68;
    puVar3[3] = CONCAT44(uStack_5c,iStack_60);
    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;
    return psVar11;
  }
  FUN_0020a990(param_1 + 0x88,puVar3,&local_78);
  return psVar11;
}


PUSH R15
MOV R15,RDX
PUSH R14
PUSH R13
MOV R13,R9
PUSH R12
MOV R12D,ECX
PUSH RBP
MOV RBP,RDI
PUSH RBX
SUB RSP,0x88
MOV RDX,qword ptr [R9]
MOV EAX,dword ptr [RSP + 0xc8]
MOV qword ptr [RSP + 0x20],RSI
MOV qword ptr [RSP + 0x8],R8
MOV EBX,dword ptr [RDX + 0x20]
MOV dword ptr [RSP + 0x10],EAX
MOV EAX,dword ptr [RDX + 0x14]
MOV qword ptr [RSP],RAX
MOV RAX,qword ptr [R15 + 0x48]
TEST RAX,RAX
JZ 0x002269ca
LEA RSI,[RAX + 0x8]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x002269ca
MOV RCX,RSI
JMP 0x002269ac
MOV RCX,RAX
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x002269bb
CMP R12D,dword ptr [RAX + 0x20]
JBE 0x002269a0
MOV RAX,qword ptr [RAX + 0x18]
TEST RAX,RAX
JNZ 0x002269ac
CMP RSI,RCX
JZ 0x002269ca
CMP R12D,dword ptr [RCX + 0x20]
JNC 0x00226bf8
LEA RAX,[RBX + -0x1]
TEST RAX,RBX
JNZ 0x00226c11
CMP qword ptr [RBP + 0x30],RBX
JNC 0x002269e1
MOV qword ptr [RBP + 0x30],RBX
MOV RSI,qword ptr [RSP + 0x8]
MOV ECX,0xb
LEA RDI,[0x371f37]
MOV R14D,dword ptr [RDX + 0x8]
MOV EDX,dword ptr [RDX + 0x24]
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00226be0
MOV EAX,EDX
MOV qword ptr [RSP + 0x18],RAX
MOV EAX,R14D
MOV RDI,RBP
MOV RSI,RAX
MOV qword ptr [RSP + 0x28],RAX
CALL 0x001f5d70
TEST byte ptr [RBP + 0xca],0x2
JNZ 0x00226a35
MOV RSI,qword ptr [RSP + 0x18]
CALL 0x001f48e0
TEST R14B,0x10
JZ 0x00226a4a
MOV EDI,dword ptr [RSP + 0xc0]
TEST EDI,EDI
JZ 0x00226c80
MOVZX EDX,byte ptr [RBP + 0xca]
TEST DL,0x20
JNZ 0x00226c40
MOV RCX,qword ptr [RBP + 0x10]
MOV RAX,RCX
MOV R13,RCX
TEST RBX,RBX
JZ 0x00226a7a
MOV RSI,RBX
LEA RAX,[RBX + RCX*0x1 + -0x1]
NEG RSI
AND RAX,RSI
MOV R13,RAX
ADD RAX,qword ptr [RSP]
TEST byte ptr [RBP + 0x20],0x2
JNZ 0x00227078
MOV qword ptr [RBP + 0x10],RAX
TEST DL,0x1
JNZ 0x00226a9c
CMP byte ptr [RSP + 0x10],0x0
JZ 0x00226d58
CMP RCX,R13
JGE 0x00226aaa
TEST DL,0x1
JZ 0x00226ef0
AND EDX,0x10
JNZ 0x00226aba
CMP byte ptr [RSP + 0x10],0x0
JZ 0x00226e4b
BSF RBX,RBX
MOV RAX,-0x1
MOV dword ptr [RSP + 0x40],R12D
CMOVZ RBX,RAX
ADD R12D,0x4
MOV dword ptr [RSP + 0x58],0x0
ADD RBX,0x1
MOV dword ptr [RSP + 0x44],EBX
CMP R12D,0x3
JBE 0x00227048
MOV RAX,qword ptr [RSP]
MOV qword ptr [RSP + 0x50],R15
MOV qword ptr [RSP + 0x48],RAX
MOV RAX,qword ptr [0x0043e6b0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x00227060
CMP qword ptr [RAX + 0x58e8],0x0
JZ 0x00226b96
LEA RBX,[RSP + 0x60]
MOV RDI,qword ptr [RSP + 0x8]
LEA R12,[RBX + 0x10]
MOV qword ptr [RSP + 0x60],R12
CALL 0x00147490
MOV R15,RAX
MOV qword ptr [RSP + 0x38],RAX
CMP RAX,0xf
JA 0x00226f18
CMP RAX,0x1
JNZ 0x00226d40
MOV RCX,qword ptr [RSP + 0x8]
MOVZX EDX,byte ptr [RCX]
MOV byte ptr [RSP + 0x70],DL
MOV qword ptr [RSP + 0x68],RAX
MOV RDI,qword ptr [RSP + 0x20]
MOV RSI,RBX
MOV byte ptr [R12 + RAX*0x1],0x0
CALL 0x001ac380
MOV RDI,qword ptr [RSP + 0x60]
ADD RBX,0x10
MOV R12D,EAX
CMP RDI,RBX
JZ 0x00226b85
CALL 0x002dac70
TEST R12D,R12D
JZ 0x00226b96
MOV dword ptr [RSP + 0x58],R12D
OR byte ptr [RBP + 0xc9],0x2
MOV RSI,qword ptr [RBP + 0x90]
CMP RSI,qword ptr [RBP + 0x98]
JZ 0x00226f58
MOVDQA XMM0,xmmword ptr [RSP + 0x40]
ADD RSI,0x20
MOVUPS xmmword ptr [RSI + -0x20],XMM0
MOVDQA XMM1,xmmword ptr [RSP + 0x50]
MOVUPS xmmword ptr [RSI + -0x10],XMM1
MOV qword ptr [RBP + 0x90],RSI
ADD RSP,0x88
MOV RAX,R13
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV qword ptr [RSP + 0x18],0x1
OR R14D,0x30
JMP 0x00226a0f
MOV RAX,qword ptr [RCX + 0x28]
MOV RBX,qword ptr [RCX + 0x38]
MOV qword ptr [RSP],RAX
LEA RAX,[RBX + -0x1]
TEST RAX,RBX
JZ 0x002269d7
LEA RDI,[0x37ed38]
CALL 0x00147320
MOV RCX,qword ptr [RSP + 0x8]
MOV RDX,RBX
MOV RDI,R15
MOV RSI,RAX
XOR EAX,EAX
MOV EBX,0x1
CALL 0x001bd150
MOV RDX,qword ptr [R13]
JMP 0x002269d7
MOV RSI,qword ptr [RSP]
LEA RDI,[RBP + 0xf8]
XOR ECX,ECX
MOV RDX,RBX
CALL 0x001a4800
MOV R13,RAX
CMP RAX,-0x1
JNZ 0x00226bc9
MOV RBX,qword ptr [RBP + 0x28]
LEA RDI,[0x37ebe0]
CALL 0x00147320
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x00178280
NOP
MOV RAX,qword ptr [R13]
MOV ESI,dword ptr [RAX + 0x14]
TEST ESI,ESI
JZ 0x00226a4a
MOV RDI,qword ptr [0x0043e6b0]
CALL 0x002379a0
TEST AL,AL
JNZ 0x00226a4a
TEST byte ptr [RBP + 0xca],0x10
JNZ 0x00227000
CMP byte ptr [RSP + 0x10],0x0
JNZ 0x00227000
MOV RDX,qword ptr [0x0043e6b0]
MOV RDI,qword ptr [RDX + 0x18]
TEST RDI,RDI
JZ 0x00227090
CMP qword ptr [RDX + 0x10],0x0
JZ 0x00226ce1
MOV EAX,0x1
TEST byte ptr [RDX + 0x24],0x8
JNZ 0x00226d03
MOV RAX,qword ptr [RDI]
LEA RDX,[0x1b1290]
MOV RAX,qword ptr [RAX + 0xe0]
CMP RAX,RDX
JNZ 0x0022703a
CALL 0x001f4a70
MOVZX EAX,AL
SUB RSP,0x8
MOV EDX,R12D
MOV R9,RBX
MOV RSI,R15
PUSH RAX
MOV R8,qword ptr [RSP + 0x28]
MOV RDI,RBP
MOV RCX,qword ptr [RSP + 0x38]
CALL 0x001fb0e0
POP RDX
POP RCX
TEST AL,AL
JZ 0x00226a4a
OR R13,-0x1
JMP 0x00226bc9
TEST RAX,RAX
JZ 0x00226b58
MOV RAX,R12
JMP 0x00226f36
TEST R14B,0x4
JZ 0x00226f70
MOV RAX,qword ptr [0x0043e6b0]
MOV RDI,qword ptr [RAX + 0x18]
TEST RDI,RDI
JZ 0x00227090
MOV RSI,qword ptr [RDI + 0x8]
CMP byte ptr [RSI + 0xe],0x0
JNZ 0x00226f80
CMP RCX,R13
JGE 0x00226aaa
MOV RSI,qword ptr [RAX + 0x18]
TEST RSI,RSI
JZ 0x00227090
MOV RAX,qword ptr [RSI + 0x8]
CMP byte ptr [RAX + 0xe],0x0
JZ 0x00226e42
MOV RDX,R13
MOV RAX,qword ptr [RBP + 0x88]
SUB RDX,RCX
CMP qword ptr [RBP + 0x90],RAX
JZ 0x00227013
MOV RAX,qword ptr [RSI]
LEA R14,[RSP + 0x40]
MOV RDI,R14
CALL qword ptr [RAX + 0x30]
MOV EDI,0x58
CALL 0x002d94a0
MOV EDX,0x1
MOV RSI,R14
MOV RDI,RAX
MOV qword ptr [RSP + 0x10],RAX
CALL 0x001ffa20
MOV RAX,qword ptr [RSP + 0x10]
MOV ECX,0xffffffff
LEA RSI,[RSP + 0x60]
LEA RDI,[RBP + 0x88]
MOV dword ptr [RSP + 0x78],0x0
MOV qword ptr [RSP + 0x60],RCX
MOV qword ptr [RSP + 0x68],0x0
MOV qword ptr [RSP + 0x70],RAX
CALL 0x0020d8b0
MOV RAX,R14
MOV RDI,qword ptr [RSP + 0x40]
ADD RAX,0x10
CMP RDI,RAX
JZ 0x00226e3b
CALL 0x002dac70
MOVZX EDX,byte ptr [RBP + 0xca]
AND EDX,0x10
JNZ 0x00226aba
MOV RAX,qword ptr [RBP + 0x88]
CMP qword ptr [RBP + 0x90],RAX
JNZ 0x00226aba
MOVZX EAX,byte ptr [RBP + 0xc9]
TEST AL,0x4
JNZ 0x00226aba
TEST AL,0x8
JNZ 0x00226aba
MOV RAX,qword ptr [0x0043e6b0]
MOV RDX,qword ptr [RAX + 0x10]
TEST RDX,RDX
JZ 0x00227060
CMP byte ptr [RDX + 0x3b38],0x0
JNZ 0x00226aba
MOV RDI,qword ptr [RAX + 0x18]
TEST RDI,RDI
JZ 0x00227090
TEST byte ptr [RAX + 0x24],0x8
JNZ 0x00226aba
MOV RAX,qword ptr [RDI]
LEA RDX,[0x1b1290]
MOV RAX,qword ptr [RAX + 0xe0]
CMP RAX,RDX
JNZ 0x00227041
CALL 0x001f4a70
TEST AL,AL
JNZ 0x00226aba
MOV RAX,qword ptr [RSP + 0x20]
CMP byte ptr [RAX + 0x371],0x0
JNZ 0x00226aba
JMP 0x00226bc9
CMP byte ptr [RSP + 0x10],0x0
JNZ 0x00226aba
AND R14D,0x4
JZ 0x00226e42
MOV RAX,qword ptr [0x0043e6b0]
JMP 0x00226d8d
XOR EDX,EDX
LEA RSI,[RSP + 0x38]
MOV RDI,RBX
CALL 0x002e15a0
MOV RDX,qword ptr [RSP + 0x38]
MOV qword ptr [RSP + 0x60],RAX
MOV qword ptr [RSP + 0x70],RDX
MOV RSI,qword ptr [RSP + 0x8]
MOV RDX,R15
MOV RDI,RAX
CALL 0x00147aa0
MOV RAX,qword ptr [RSP + 0x38]
MOV R12,qword ptr [RSP + 0x60]
JMP 0x00226b58
LEA RDX,[RSP + 0x40]
LEA RDI,[RBP + 0x88]
CALL 0x0020a990
JMP 0x00226bc9
CMP RCX,R13
JGE 0x00226aaa
JMP 0x00226e42
CMP qword ptr [RAX + 0x10],0x0
JZ 0x00226f8d
TEST byte ptr [RAX + 0x24],0x8
JNZ 0x00226fd0
MOV RAX,qword ptr [RDI]
LEA RDX,[0x1b1290]
MOV qword ptr [RSP + 0x18],RCX
MOV RAX,qword ptr [RAX + 0xe0]
CMP RAX,RDX
JNZ 0x0022700a
CALL 0x001f4a70
MOV RCX,qword ptr [RSP + 0x18]
TEST AL,AL
JNZ 0x00226fd0
MOV RAX,qword ptr [RSP + 0x20]
CMP byte ptr [RAX + 0x371],0x0
JNZ 0x00226fd0
MOVZX EDX,byte ptr [RBP + 0xca]
JMP 0x00226a9c
MOV RAX,qword ptr [RBP + 0xa8]
CMP qword ptr [RBP + 0xb0],RAX
JNZ 0x002270a8
MOVZX EDX,byte ptr [RBP + 0xca]
OR EDX,0x1
MOV byte ptr [RBP + 0xca],DL
JMP 0x00226aaa
MOV EAX,0x1
JMP 0x00226d03
CALL RAX
MOV RCX,qword ptr [RSP + 0x18]
JMP 0x00226fb2
LEA RSI,[RSP + 0x60]
LEA RDI,[RBP + 0xa8]
MOV qword ptr [RSP + 0x68],RDX
MOV qword ptr [RSP + 0x60],RCX
CALL 0x00213c70
MOVZX EDX,byte ptr [RBP + 0xca]
JMP 0x00226e42
CALL RAX
JMP 0x00226d00
CALL RAX
JMP 0x00226ecd
LEA RDX,[0x380258]
MOV ESI,0xe9a
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x380df0]
MOV ESI,0x5c
LEA RDI,[0x3726d0]
CALL 0x0017c650
LEA RDX,[0x380c80]
MOV ESI,0x231
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x380e1b]
MOV ESI,0x69
LEA RDI,[0x3726d0]
CALL 0x0017c650
LEA RDX,[0x380270]
MOV ESI,0x9eb
LEA RDI,[0x37e8cf]
CALL 0x0017c650
(translation_unit "size_t * FUN_00226940(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)\n\n{\n  long *plVar1;\n  undefined4 uVar2;\n  undefined8 *puVar3;\n  code *pcVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined1 uVar7;\n  char cVar8;\n  int iVar9;\n  ulong uVar10;\n  size_t *psVar11;\n  size_t sVar12;\n  undefined8 uVar13;\n  size_t *psVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  ulong uVar19;\n  ulong uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  uint uVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  size_t sStack_80;\n  uint local_78;\n  int iStack_74;\n  ulong uStack_70;\n  long lStack_68;\n  int iStack_60;\n  undefined4 uStack_5c;\n  size_t *local_58;\n  size_t local_50;\n  size_t local_48;\n  undefined4 local_40;\n  \n  bVar26 = 0;\n  lVar18 = *param_6;\n  uVar19 = (ulong)*(uint *)(lVar18 + 0x20);\n  uVar10 = (ulong)*(uint *)(lVar18 + 0x14);\n  lVar17 = *(long *)(param_3 + 0x48);\n  if (lVar17 == 0) {\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  uVar20 = uVar19;\n  if (uVar5 != 0) {\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }\n  bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;\n  bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;\n  if (bVar24) {\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }\n  lVar17 = 0xb;\n  uVar23 = *(uint *)(lVar18 + 8);\n  uVar2 = *(undefined4 *)(lVar18 + 0x24);\n  pbVar21 = param_5;\n  pbVar22 = (byte *)".debug_str";\n  do {\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  } while (bVar25);\n  if ((!bVar24 && !bVar25) == bVar24) {\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }\n  FUN_001f5d70(param_1,uVar23);\n  if ((*(byte *)(param_1 + 0xca) & 2) == 0) {\n    FUN_001f48e0();\n  }\n  if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;\n  while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }\n  psVar14 = *(size_t **)(param_1 + 0x10);\n  psVar11 = psVar14;\n  if (uVar20 != 0) {\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }\n  if ((*(byte *)(param_1 + 0x20) & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  *(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;\n  if (((bVar26 & 1) == 0) && (param_8 == '\0')) {\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }\nLAB_00226aba:\n  lVar18 = 0;\n  if (uVar20 != 0) {\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }\n  iStack_74 = (int)lVar18;\n  if (uVar20 == 0) {\n    iStack_74 = -1;\n  }\n  iStack_60 = 0;\n  iStack_74 = iStack_74 + 1;\n  local_78 = param_4;\n  if (param_4 + 4 < 4) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }\n  uStack_70 = uVar10;\n  lStack_68 = param_3;\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_00227060:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;\n  psVar14 = &local_48;\n  local_58 = psVar14;\n  sVar12 = strlen((char *)param_5);\n  sStack_80 = sVar12;\n  if (sVar12 < 0x10) {\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }\n  else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }\n  *(undefined1 *)((long)psVar14 + sStack_80) = 0;\n  local_50 = sStack_80;\n                    /* try { // try from 00226b6a to 00226b6e has its CatchHandler @ 002270c0 */\n  iVar9 = FUN_001ac380(param_2,&local_58);\n  if (local_58 != &local_48) {\n    FUN_002dac70();\n  }\n  if (iVar9 != 0) {\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }\nLAB_00226b96:\n  puVar3 = *(undefined8 **)(param_1 + 0x90);\n  if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }\n  FUN_0020a990(param_1 + 0x88,puVar3,&local_78);\n  return psVar11;\n}\n\n" (function_definition "size_t * FUN_00226940(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)\n\n{\n  long *plVar1;\n  undefined4 uVar2;\n  undefined8 *puVar3;\n  code *pcVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined1 uVar7;\n  char cVar8;\n  int iVar9;\n  ulong uVar10;\n  size_t *psVar11;\n  size_t sVar12;\n  undefined8 uVar13;\n  size_t *psVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  ulong uVar19;\n  ulong uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  uint uVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  size_t sStack_80;\n  uint local_78;\n  int iStack_74;\n  ulong uStack_70;\n  long lStack_68;\n  int iStack_60;\n  undefined4 uStack_5c;\n  size_t *local_58;\n  size_t local_50;\n  size_t local_48;\n  undefined4 local_40;\n  \n  bVar26 = 0;\n  lVar18 = *param_6;\n  uVar19 = (ulong)*(uint *)(lVar18 + 0x20);\n  uVar10 = (ulong)*(uint *)(lVar18 + 0x14);\n  lVar17 = *(long *)(param_3 + 0x48);\n  if (lVar17 == 0) {\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  uVar20 = uVar19;\n  if (uVar5 != 0) {\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }\n  bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;\n  bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;\n  if (bVar24) {\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }\n  lVar17 = 0xb;\n  uVar23 = *(uint *)(lVar18 + 8);\n  uVar2 = *(undefined4 *)(lVar18 + 0x24);\n  pbVar21 = param_5;\n  pbVar22 = (byte *)".debug_str";\n  do {\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  } while (bVar25);\n  if ((!bVar24 && !bVar25) == bVar24) {\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }\n  FUN_001f5d70(param_1,uVar23);\n  if ((*(byte *)(param_1 + 0xca) & 2) == 0) {\n    FUN_001f48e0();\n  }\n  if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;\n  while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }\n  psVar14 = *(size_t **)(param_1 + 0x10);\n  psVar11 = psVar14;\n  if (uVar20 != 0) {\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }\n  if ((*(byte *)(param_1 + 0x20) & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  *(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;\n  if (((bVar26 & 1) == 0) && (param_8 == '\0')) {\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }\nLAB_00226aba:\n  lVar18 = 0;\n  if (uVar20 != 0) {\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }\n  iStack_74 = (int)lVar18;\n  if (uVar20 == 0) {\n    iStack_74 = -1;\n  }\n  iStack_60 = 0;\n  iStack_74 = iStack_74 + 1;\n  local_78 = param_4;\n  if (param_4 + 4 < 4) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }\n  uStack_70 = uVar10;\n  lStack_68 = param_3;\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_00227060:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;\n  psVar14 = &local_48;\n  local_58 = psVar14;\n  sVar12 = strlen((char *)param_5);\n  sStack_80 = sVar12;\n  if (sVar12 < 0x10) {\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }\n  else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }\n  *(undefined1 *)((long)psVar14 + sStack_80) = 0;\n  local_50 = sStack_80;\n                    /* try { // try from 00226b6a to 00226b6e has its CatchHandler @ 002270c0 */\n  iVar9 = FUN_001ac380(param_2,&local_58);\n  if (local_58 != &local_48) {\n    FUN_002dac70();\n  }\n  if (iVar9 != 0) {\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }\nLAB_00226b96:\n  puVar3 = *(undefined8 **)(param_1 + 0x90);\n  if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }\n  FUN_0020a990(param_1 + 0x88,puVar3,&local_78);\n  return psVar11;\n}" primitive_type (pointer_declarator "* FUN_00226940(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)" * (function_declarator "FUN_00226940(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)" identifier (parameter_list "(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "byte *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long *param_6" (sized_type_specifier "long" long) (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "char param_8" primitive_type identifier) )))) (compound_statement "{\n  long *plVar1;\n  undefined4 uVar2;\n  undefined8 *puVar3;\n  code *pcVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined1 uVar7;\n  char cVar8;\n  int iVar9;\n  ulong uVar10;\n  size_t *psVar11;\n  size_t sVar12;\n  undefined8 uVar13;\n  size_t *psVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  ulong uVar19;\n  ulong uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  uint uVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  size_t sStack_80;\n  uint local_78;\n  int iStack_74;\n  ulong uStack_70;\n  long lStack_68;\n  int iStack_60;\n  undefined4 uStack_5c;\n  size_t *local_58;\n  size_t local_50;\n  size_t local_48;\n  undefined4 local_40;\n  \n  bVar26 = 0;\n  lVar18 = *param_6;\n  uVar19 = (ulong)*(uint *)(lVar18 + 0x20);\n  uVar10 = (ulong)*(uint *)(lVar18 + 0x14);\n  lVar17 = *(long *)(param_3 + 0x48);\n  if (lVar17 == 0) {\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  uVar20 = uVar19;\n  if (uVar5 != 0) {\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }\n  bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;\n  bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;\n  if (bVar24) {\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }\n  lVar17 = 0xb;\n  uVar23 = *(uint *)(lVar18 + 8);\n  uVar2 = *(undefined4 *)(lVar18 + 0x24);\n  pbVar21 = param_5;\n  pbVar22 = (byte *)".debug_str";\n  do {\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  } while (bVar25);\n  if ((!bVar24 && !bVar25) == bVar24) {\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }\n  FUN_001f5d70(param_1,uVar23);\n  if ((*(byte *)(param_1 + 0xca) & 2) == 0) {\n    FUN_001f48e0();\n  }\n  if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;\n  while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }\n  psVar14 = *(size_t **)(param_1 + 0x10);\n  psVar11 = psVar14;\n  if (uVar20 != 0) {\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }\n  if ((*(byte *)(param_1 + 0x20) & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  *(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;\n  if (((bVar26 & 1) == 0) && (param_8 == '\0')) {\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }\nLAB_00226aba:\n  lVar18 = 0;\n  if (uVar20 != 0) {\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }\n  iStack_74 = (int)lVar18;\n  if (uVar20 == 0) {\n    iStack_74 = -1;\n  }\n  iStack_60 = 0;\n  iStack_74 = iStack_74 + 1;\n  local_78 = param_4;\n  if (param_4 + 4 < 4) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }\n  uStack_70 = uVar10;\n  lStack_68 = param_3;\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_00227060:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;\n  psVar14 = &local_48;\n  local_58 = psVar14;\n  sVar12 = strlen((char *)param_5);\n  sStack_80 = sVar12;\n  if (sVar12 < 0x10) {\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }\n  else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }\n  *(undefined1 *)((long)psVar14 + sStack_80) = 0;\n  local_50 = sStack_80;\n                    /* try { // try from 00226b6a to 00226b6e has its CatchHandler @ 002270c0 */\n  iVar9 = FUN_001ac380(param_2,&local_58);\n  if (local_58 != &local_48) {\n    FUN_002dac70();\n  }\n  if (iVar9 != 0) {\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }\nLAB_00226b96:\n  puVar3 = *(undefined8 **)(param_1 + 0x90);\n  if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }\n  FUN_0020a990(param_1 + 0x88,puVar3,&local_78);\n  return psVar11;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 uVar7;" type_identifier identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "size_t *psVar11;" primitive_type (pointer_declarator "*psVar11" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "size_t *psVar14;" primitive_type (pointer_declarator "*psVar14" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "ulong uVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "size_t sStack_80;" primitive_type identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "ulong uStack_70;" type_identifier identifier ;) (declaration "long lStack_68;" (sized_type_specifier "long" long) identifier ;) (declaration "int iStack_60;" primitive_type identifier ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "size_t *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "size_t local_50;" primitive_type identifier ;) (declaration "size_t local_48;" primitive_type identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (expression_statement "bVar26 = 0;" (assignment_expression "bVar26 = 0" identifier = number_literal) ;) (expression_statement "lVar18 = *param_6;" (assignment_expression "lVar18 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (expression_statement "uVar19 = (ulong)*(uint *)(lVar18 + 0x20);" (assignment_expression "uVar19 = (ulong)*(uint *)(lVar18 + 0x20)" identifier = (binary_expression "(ulong)*(uint *)(lVar18 + 0x20)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar18 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0x20)" ( (binary_expression "lVar18 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = (ulong)*(uint *)(lVar18 + 0x14);" (assignment_expression "uVar10 = (ulong)*(uint *)(lVar18 + 0x14)" identifier = (binary_expression "(ulong)*(uint *)(lVar18 + 0x14)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar18 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0x14)" ( (binary_expression "lVar18 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "lVar17 = *(long *)(param_3 + 0x48);" (assignment_expression "lVar17 = *(long *)(param_3 + 0x48)" identifier = (pointer_expression "*(long *)(param_3 + 0x48)" * (cast_expression "(long *)(param_3 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x48)" ( (binary_expression "param_3 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (lVar17 == 0) {\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }" { (labeled_statement "LAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;" statement_identifier : (expression_statement "uVar5 = uVar19 - 1 & uVar19;" (assignment_expression "uVar5 = uVar19 - 1 & uVar19" identifier = (binary_expression "uVar19 - 1 & uVar19" (binary_expression "uVar19 - 1" identifier - number_literal) & identifier)) ;)) }) (else_clause "else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }" else (compound_statement "{\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }" { (expression_statement "lVar6 = *(long *)(lVar17 + 0x10);" (assignment_expression "lVar6 = *(long *)(lVar17 + 0x10)" identifier = (pointer_expression "*(long *)(lVar17 + 0x10)" * (cast_expression "(long *)(lVar17 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar17 + 0x10)" ( (binary_expression "lVar17 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "lVar15 = lVar17 + 8;" (assignment_expression "lVar15 = lVar17 + 8" identifier = (binary_expression "lVar17 + 8" identifier + number_literal)) ;) (if_statement "if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;" if (parenthesized_expression "(*(long *)(lVar17 + 0x10) == 0)" ( (binary_expression "*(long *)(lVar17 + 0x10) == 0" (pointer_expression "*(long *)(lVar17 + 0x10)" * (cast_expression "(long *)(lVar17 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar17 + 0x10)" ( (binary_expression "lVar17 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002269ca;" goto statement_identifier ;)) (do_statement "do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);" do (compound_statement "{\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    }" { (while_statement "while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }" while (parenthesized_expression "(lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20))" ( (comma_expression "lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)" (assignment_expression "lVar16 = lVar6" identifier = identifier) , (binary_expression "param_4 <= *(uint *)(lVar16 + 0x20)" identifier <= (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))))) )) (compound_statement "{\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }" { (expression_statement "lVar6 = *(long *)(lVar16 + 0x10);" (assignment_expression "lVar6 = *(long *)(lVar16 + 0x10)" identifier = (pointer_expression "*(long *)(lVar16 + 0x10)" * (cast_expression "(long *)(lVar16 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x10)" ( (binary_expression "lVar16 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "lVar15 = lVar16;" (assignment_expression "lVar15 = lVar16" identifier = identifier) ;) (if_statement "if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;" if (parenthesized_expression "(*(long *)(lVar16 + 0x10) == 0)" ( (binary_expression "*(long *)(lVar16 + 0x10) == 0" (pointer_expression "*(long *)(lVar16 + 0x10)" * (cast_expression "(long *)(lVar16 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x10)" ( (binary_expression "lVar16 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002269bb;" goto statement_identifier ;)) })) (expression_statement "plVar1 = (long *)(lVar16 + 0x18);" (assignment_expression "plVar1 = (long *)(lVar16 + 0x18)" identifier = (cast_expression "(long *)(lVar16 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x18)" ( (binary_expression "lVar16 + 0x18" identifier + number_literal) )))) ;) (expression_statement "lVar6 = *plVar1;" (assignment_expression "lVar6 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (expression_statement "lVar16 = lVar15;" (assignment_expression "lVar16 = lVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*plVar1 != 0)" ( (binary_expression "*plVar1 != 0" (pointer_expression "*plVar1" * identifier) != number_literal) )) ;) (labeled_statement "LAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;" statement_identifier : (if_statement "if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;" if (parenthesized_expression "((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20)))" ( (binary_expression "(lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))" (parenthesized_expression "(lVar17 + 8 == lVar16)" ( (binary_expression "lVar17 + 8 == lVar16" (binary_expression "lVar17 + 8" identifier + number_literal) == identifier) )) || (parenthesized_expression "(param_4 < *(uint *)(lVar16 + 0x20))" ( (binary_expression "param_4 < *(uint *)(lVar16 + 0x20)" identifier < (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_002269ca;" goto statement_identifier ;))) (expression_statement "uVar10 = *(ulong *)(lVar16 + 0x28);" (assignment_expression "uVar10 = *(ulong *)(lVar16 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar16 + 0x28)" * (cast_expression "(ulong *)(lVar16 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *(ulong *)(lVar16 + 0x38);" (assignment_expression "uVar19 = *(ulong *)(lVar16 + 0x38)" identifier = (pointer_expression "*(ulong *)(lVar16 + 0x38)" * (cast_expression "(ulong *)(lVar16 + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar19 - 1 & uVar19;" (assignment_expression "uVar5 = uVar19 - 1 & uVar19" identifier = (binary_expression "uVar19 - 1 & uVar19" (binary_expression "uVar19 - 1" identifier - number_literal) & identifier)) ;) }))) (expression_statement "uVar20 = uVar19;" (assignment_expression "uVar20 = uVar19" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }" { (expression_statement "uVar13 = gettext("invalid alignment %lu for section \"%s\"");" (assignment_expression "uVar13 = gettext("invalid alignment %lu for section \"%s\"")" identifier = (call_expression "gettext("invalid alignment %lu for section \"%s\"")" identifier (argument_list "("invalid alignment %lu for section \"%s\"")" ( (string_literal ""invalid alignment %lu for section \"%s\""" " string_content escape_sequence string_content escape_sequence ") )))) ;) (expression_statement "uVar20 = 1;" (assignment_expression "uVar20 = 1" identifier = number_literal) ;) (expression_statement "FUN_001bd150(param_3,uVar13,uVar19,param_5);" (call_expression "FUN_001bd150(param_3,uVar13,uVar19,param_5)" identifier (argument_list "(param_3,uVar13,uVar19,param_5)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "lVar18 = *param_6;" (assignment_expression "lVar18 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) })) (expression_statement "bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;" (assignment_expression "bVar24 = *(ulong *)(param_1 + 0x30) < uVar20" identifier = (binary_expression "*(ulong *)(param_1 + 0x30) < uVar20" (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) < identifier)) ;) (expression_statement "bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;" (assignment_expression "bVar25 = *(ulong *)(param_1 + 0x30) == uVar20" identifier = (binary_expression "*(ulong *)(param_1 + 0x30) == uVar20" (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) == identifier)) ;) (if_statement "if (bVar24) {\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }" { (expression_statement "*(ulong *)(param_1 + 0x30) = uVar20;" (assignment_expression "*(ulong *)(param_1 + 0x30) = uVar20" (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "lVar17 = 0xb;" (assignment_expression "lVar17 = 0xb" identifier = number_literal) ;) (expression_statement "uVar23 = *(uint *)(lVar18 + 8);" (assignment_expression "uVar23 = *(uint *)(lVar18 + 8)" identifier = (pointer_expression "*(uint *)(lVar18 + 8)" * (cast_expression "(uint *)(lVar18 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 8)" ( (binary_expression "lVar18 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined4 *)(lVar18 + 0x24);" (assignment_expression "uVar2 = *(undefined4 *)(lVar18 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(lVar18 + 0x24)" * (cast_expression "(undefined4 *)(lVar18 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0x24)" ( (binary_expression "lVar18 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "pbVar21 = param_5;" (assignment_expression "pbVar21 = param_5" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)".debug_str";" (assignment_expression "pbVar22 = (byte *)".debug_str"" identifier = (cast_expression "(byte *)".debug_str"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug_str"" " string_content "))) ;) (do_statement "do {\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  } while (bVar25);" do (compound_statement "{\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar21 < *pbVar22;" (assignment_expression "bVar24 = *pbVar21 < *pbVar22" identifier = (binary_expression "*pbVar21 < *pbVar22" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar25 = *pbVar21 == *pbVar22;" (assignment_expression "bVar25 = *pbVar21 == *pbVar22" identifier = (binary_expression "*pbVar21 == *pbVar22" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar21 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar21 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar22 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar22 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar25) == bVar24) {\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }" if (parenthesized_expression "((!bVar24 && !bVar25) == bVar24)" ( (binary_expression "(!bVar24 && !bVar25) == bVar24" (parenthesized_expression "(!bVar24 && !bVar25)" ( (binary_expression "!bVar24 && !bVar25" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) (compound_statement "{\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (expression_statement "uVar23 = uVar23 | 0x30;" (assignment_expression "uVar23 = uVar23 | 0x30" identifier = (binary_expression "uVar23 | 0x30" identifier | number_literal)) ;) })) (expression_statement "FUN_001f5d70(param_1,uVar23);" (call_expression "FUN_001f5d70(param_1,uVar23)" identifier (argument_list "(param_1,uVar23)" ( identifier , identifier ))) ;) (if_statement "if ((*(byte *)(param_1 + 0xca) & 2) == 0) {\n    FUN_001f48e0();\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0xca) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0xca) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0xca) & 2)" ( (binary_expression "*(byte *)(param_1 + 0xca) & 2" (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    FUN_001f48e0();\n  }" { (expression_statement "FUN_001f48e0();" (call_expression "FUN_001f48e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;" if (parenthesized_expression "(((uVar23 & 0x10) != 0) && (param_7 == 0))" ( (binary_expression "((uVar23 & 0x10) != 0) && (param_7 == 0)" (parenthesized_expression "((uVar23 & 0x10) != 0)" ( (binary_expression "(uVar23 & 0x10) != 0" (parenthesized_expression "(uVar23 & 0x10)" ( (binary_expression "uVar23 & 0x10" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00226c80;" goto statement_identifier ;)) (while_statement "while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }" while (parenthesized_expression "(bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0)" ( (comma_expression "bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca)" identifier = (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) ))))) , (binary_expression "(bVar26 & 0x20) != 0" (parenthesized_expression "(bVar26 & 0x20)" ( (binary_expression "bVar26 & 0x20" identifier & number_literal) )) != number_literal)) )) (compound_statement "{\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }" { (expression_statement "psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);" (assignment_expression "psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0)" identifier = (cast_expression "(size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0)" identifier (argument_list "(param_1 + 0xf8,uVar10,uVar20,0)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) , identifier , identifier , number_literal ))))) ;) (if_statement "if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }" if (parenthesized_expression "(psVar14 != (size_t *)0xffffffffffffffff)" ( (binary_expression "psVar14 != (size_t *)0xffffffffffffffff" identifier != (cast_expression "(size_t *)0xffffffffffffffff" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return psVar14;\n    }" { (return_statement "return psVar14;" return identifier ;) })) (expression_statement "uVar20 = *(ulong *)(param_1 + 0x28);" (assignment_expression "uVar20 = *(ulong *)(param_1 + 0x28)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x28)" * (cast_expression "(ulong *)(param_1 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");" (assignment_expression "uVar13 = gettext("out of patch space in section %s; relink with --incremental-full")" identifier = (call_expression "gettext("out of patch space in section %s; relink with --incremental-full")" identifier (argument_list "("out of patch space in section %s; relink with --incremental-full")" ( (string_literal ""out of patch space in section %s; relink with --incremental-full"" " string_content ") )))) ;) (expression_statement "FUN_00178280(uVar13,uVar20);" (call_expression "FUN_00178280(uVar13,uVar20)" identifier (argument_list "(uVar13,uVar20)" ( identifier , identifier ))) ;) (expression_statement "param_6 = (long *)0xffffffffffffffff;" (assignment_expression "param_6 = (long *)0xffffffffffffffff" identifier = (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }" statement_identifier : (if_statement "if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }" if (parenthesized_expression "((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))" ( (binary_expression "(*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0')" (parenthesized_expression "(*(int *)(*param_6 + 0x14) != 0)" ( (binary_expression "*(int *)(*param_6 + 0x14) != 0" (pointer_expression "*(int *)(*param_6 + 0x14)" * (cast_expression "(int *)(*param_6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + 0x14)" ( (binary_expression "*param_6 + 0x14" (pointer_expression "*param_6" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0')" ( (comma_expression "cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'" (assignment_expression "cVar8 = FUN_002379a0(PTR_DAT_0043e6b0)" identifier = (call_expression "FUN_002379a0(PTR_DAT_0043e6b0)" identifier (argument_list "(PTR_DAT_0043e6b0)" ( identifier )))) , (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }" { (if_statement "if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }" if (parenthesized_expression "(((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0'))" ( (binary_expression "((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')" (parenthesized_expression "((*(byte *)(param_1 + 0xca) & 0x10) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0xca) & 0x10) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0xca) & 0x10)" ( (binary_expression "*(byte *)(param_1 + 0xca) & 0x10" (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(param_8 == '\0')" ( (binary_expression "param_8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }" { (if_statement "if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;" if (parenthesized_expression "(*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0)" ( (binary_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0" (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) )))) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00227090;" goto statement_identifier ;)) (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }" if (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0))" ( (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)" ( (comma_expression "uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0" (assignment_expression "uVar7 = 1" identifier = number_literal) , (binary_expression "(PTR_DAT_0043e6b0[0x24] & 8) == 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 8)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 8" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }" { (expression_statement "pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);" (assignment_expression "pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" identifier = (pointer_expression "*(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" * (cast_expression "(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" ( (binary_expression "**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0" (pointer_expression "**(long **)(PTR_DAT_0043e6b0 + 0x18)" * (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }" if (parenthesized_expression "(pcVar4 == FUN_001b1290)" ( (binary_expression "pcVar4 == FUN_001b1290" identifier == identifier) )) (compound_statement "{\n            uVar7 = FUN_001f4a70();\n          }" { (expression_statement "uVar7 = FUN_001f4a70();" (assignment_expression "uVar7 = FUN_001f4a70()" identifier = (call_expression "FUN_001f4a70()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n            uVar7 = (*pcVar4)();\n          }" else (compound_statement "{\n            uVar7 = (*pcVar4)();\n          }" { (expression_statement "uVar7 = (*pcVar4)();" (assignment_expression "uVar7 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) }))) })) }) (else_clause "else {\n        uVar7 = 1;\n      }" else (compound_statement "{\n        uVar7 = 1;\n      }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))) (expression_statement "cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);" (assignment_expression "cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7)" identifier = (call_expression "FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7)" identifier (argument_list "(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return (size_t *)0xffffffffffffffff;\n      }" { (return_statement "return (size_t *)0xffffffffffffffff;" return (cast_expression "(size_t *)0xffffffffffffffff" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }))) })) (expression_statement "psVar14 = *(size_t **)(param_1 + 0x10);" (assignment_expression "psVar14 = *(size_t **)(param_1 + 0x10)" identifier = (pointer_expression "*(size_t **)(param_1 + 0x10)" * (cast_expression "(size_t **)(param_1 + 0x10)" ( (type_descriptor "size_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "psVar11 = psVar14;" (assignment_expression "psVar11 = psVar14" identifier = identifier) ;) (if_statement "if (uVar20 != 0) {\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }" { (expression_statement "psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);" (assignment_expression "psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20)" identifier = (cast_expression "(size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar20 - 1) + (long)psVar14 & -uVar20)" ( (binary_expression "(uVar20 - 1) + (long)psVar14 & -uVar20" (binary_expression "(uVar20 - 1) + (long)psVar14" (parenthesized_expression "(uVar20 - 1)" ( (binary_expression "uVar20 - 1" identifier - number_literal) )) + (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) & (unary_expression "-uVar20" - identifier)) )))) ;) })) (if_statement "if ((*(byte *)(param_1 + 0x20) & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 2) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x20) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x20) & 2" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" { comment (expression_statement "FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })) (expression_statement "*(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;" (assignment_expression "*(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10" (pointer_expression "*(ulong *)(param_1 + 0x10)" * (cast_expression "(ulong *)(param_1 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "(long)psVar11 + uVar10" (cast_expression "(long)psVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier)) ;) (if_statement "if (((bVar26 & 1) == 0) && (param_8 == '\0')) {\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }" if (parenthesized_expression "(((bVar26 & 1) == 0) && (param_8 == '\0'))" ( (binary_expression "((bVar26 & 1) == 0) && (param_8 == '\0')" (parenthesized_expression "((bVar26 & 1) == 0)" ( (binary_expression "(bVar26 & 1) == 0" (parenthesized_expression "(bVar26 & 1)" ( (binary_expression "bVar26 & 1" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(param_8 == '\0')" ( (binary_expression "param_8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }" { (if_statement "if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }" if (parenthesized_expression "((uVar23 & 4) == 0)" ( (binary_expression "(uVar23 & 4) == 0" (parenthesized_expression "(uVar23 & 4)" ( (binary_expression "uVar23 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }" { (if_statement "if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;" if (parenthesized_expression "((long)psVar11 <= (long)psVar14)" ( (binary_expression "(long)psVar11 <= (long)psVar14" (cast_expression "(long)psVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) <= (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_00226aaa;" goto statement_identifier ;)) (labeled_statement "LAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;" statement_identifier : (if_statement "if ((bVar26 & 0x10) != 0) goto LAB_00226aba;" if (parenthesized_expression "((bVar26 & 0x10) != 0)" ( (binary_expression "(bVar26 & 0x10) != 0" (parenthesized_expression "(bVar26 & 0x10)" ( (binary_expression "bVar26 & 0x10" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00226aba;" goto statement_identifier ;))) }) (else_clause "else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }" else (compound_statement "{\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }" { (expression_statement "plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);" (assignment_expression "plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar1 == (long *)0x0) goto LAB_00227090;" if (parenthesized_expression "(plVar1 == (long *)0x0)" ( (binary_expression "plVar1 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00227090;" goto statement_identifier ;)) (if_statement "if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }" if (parenthesized_expression "(*(char *)(plVar1[1] + 0xe) == '\0')" ( (binary_expression "*(char *)(plVar1[1] + 0xe) == '\0'" (pointer_expression "*(char *)(plVar1[1] + 0xe)" * (cast_expression "(char *)(plVar1[1] + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar1[1] + 0xe)" ( (binary_expression "plVar1[1] + 0xe" (subscript_expression "plVar1[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }" { (if_statement "if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }" if (parenthesized_expression "((long)psVar14 < (long)psVar11)" ( (binary_expression "(long)psVar14 < (long)psVar11" (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)psVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }" { (labeled_statement "LAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);" statement_identifier : (expression_statement "plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);" (assignment_expression "plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) ))))) ;)) (if_statement "if (plVar1 == (long *)0x0) goto LAB_00227090;" if (parenthesized_expression "(plVar1 == (long *)0x0)" ( (binary_expression "plVar1 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00227090;" goto statement_identifier ;)) (if_statement "if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }" if (parenthesized_expression "(*(char *)(plVar1[1] + 0xe) != '\0')" ( (binary_expression "*(char *)(plVar1[1] + 0xe) != '\0'" (pointer_expression "*(char *)(plVar1[1] + 0xe)" * (cast_expression "(char *)(plVar1[1] + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar1[1] + 0xe)" ( (binary_expression "plVar1[1] + 0xe" (subscript_expression "plVar1[1]" identifier [ number_literal ]) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }" { (expression_statement "local_50 = (long)psVar11 - (long)psVar14;" (assignment_expression "local_50 = (long)psVar11 - (long)psVar14" identifier = (binary_expression "(long)psVar11 - (long)psVar14" (cast_expression "(long)psVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }" if (parenthesized_expression "(*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88))" ( (binary_expression "*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)" (pointer_expression "*(long *)(param_1 + 0x90)" * (cast_expression "(long *)(param_1 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) == (pointer_expression "*(long *)(param_1 + 0x88)" * (cast_expression "(long *)(param_1 + 0x88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) )) (compound_statement "{\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }" { (expression_statement "local_58 = psVar14;" (assignment_expression "local_58 = psVar14" identifier = identifier) ;) (expression_statement "FUN_00213c70(param_1 + 0xa8,&local_58);" (call_expression "FUN_00213c70(param_1 + 0xa8,&local_58)" identifier (argument_list "(param_1 + 0xa8,&local_58)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar26 = *(byte *)(param_1 + 0xca);" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca)" identifier = (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }" else (compound_statement "{\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n              sVar12 = FUN_002d94a0(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }" { (expression_statement "(**(code **)(*plVar1 + 0x30))(&local_78);" (call_expression "(**(code **)(*plVar1 + 0x30))(&local_78)" (parenthesized_expression "(**(code **)(*plVar1 + 0x30))" ( (pointer_expression "**(code **)(*plVar1 + 0x30)" * (pointer_expression "*(code **)(*plVar1 + 0x30)" * (cast_expression "(code **)(*plVar1 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar1 + 0x30)" ( (binary_expression "*plVar1 + 0x30" (pointer_expression "*plVar1" * identifier) + number_literal) ))))) )) (argument_list "(&local_78)" ( (pointer_expression "&local_78" & identifier) ))) ;) comment (expression_statement "sVar12 = FUN_002d94a0(0x58);" (assignment_expression "sVar12 = FUN_002d94a0(0x58)" identifier = (call_expression "FUN_002d94a0(0x58)" identifier (argument_list "(0x58)" ( number_literal )))) ;) comment (expression_statement "FUN_001ffa20(sVar12,&local_78,1);" (call_expression "FUN_001ffa20(sVar12,&local_78,1)" identifier (argument_list "(sVar12,&local_78,1)" ( identifier , (pointer_expression "&local_78" & identifier) , number_literal ))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_58 = (size_t *)0xffffffff;" (assignment_expression "local_58 = (size_t *)0xffffffff" identifier = (cast_expression "(size_t *)0xffffffff" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_48 = sVar12;" (assignment_expression "local_48 = sVar12" identifier = identifier) ;) comment (expression_statement "FUN_0020d8b0(param_1 + 0x88,&local_58);" (call_expression "FUN_0020d8b0(param_1 + 0x88,&local_58)" identifier (argument_list "(param_1 + 0x88,&local_58)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) , (pointer_expression "&local_58" & identifier) ))) ;) (if_statement "if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }" if (parenthesized_expression "((long *)CONCAT44(iStack_74,local_78) != &lStack_68)" ( (binary_expression "(long *)CONCAT44(iStack_74,local_78) != &lStack_68" (cast_expression "(long *)CONCAT44(iStack_74,local_78)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(iStack_74,local_78)" identifier (argument_list "(iStack_74,local_78)" ( identifier , identifier )))) != (pointer_expression "&lStack_68" & identifier)) )) (compound_statement "{\n                FUN_002dac70();\n              }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar26 = *(byte *)(param_1 + 0xca);" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca)" identifier = (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) ))))) ;) }))) })) (goto_statement "goto LAB_00226e42;" goto statement_identifier ;) })) }) (else_clause "else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }" else (compound_statement "{\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }" { (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }" if (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0))" ( (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 8) == 0)" ( (binary_expression "(PTR_DAT_0043e6b0[0x24] & 8) == 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 8)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 8" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }" { (if_statement "if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }" if (parenthesized_expression "(*(code **)(*plVar1 + 0xe0) == FUN_001b1290)" ( (binary_expression "*(code **)(*plVar1 + 0xe0) == FUN_001b1290" (pointer_expression "*(code **)(*plVar1 + 0xe0)" * (cast_expression "(code **)(*plVar1 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar1 + 0xe0)" ( (binary_expression "*plVar1 + 0xe0" (pointer_expression "*plVar1" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n            cVar8 = FUN_001f4a70();\n          }" { (expression_statement "cVar8 = FUN_001f4a70();" (assignment_expression "cVar8 = FUN_001f4a70()" identifier = (call_expression "FUN_001f4a70()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }" else (compound_statement "{\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }" { (expression_statement "cVar8 = (**(code **)(*plVar1 + 0xe0))();" (assignment_expression "cVar8 = (**(code **)(*plVar1 + 0xe0))()" identifier = (call_expression "(**(code **)(*plVar1 + 0xe0))()" (parenthesized_expression "(**(code **)(*plVar1 + 0xe0))" ( (pointer_expression "**(code **)(*plVar1 + 0xe0)" * (pointer_expression "*(code **)(*plVar1 + 0xe0)" * (cast_expression "(code **)(*plVar1 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar1 + 0xe0)" ( (binary_expression "*plVar1 + 0xe0" (pointer_expression "*plVar1" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }" if (parenthesized_expression "((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0'))" ( (binary_expression "(cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')" (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(param_2 + 0x371) == '\0')" ( (binary_expression "*(char *)(param_2 + 0x371) == '\0'" (pointer_expression "*(char *)(param_2 + 0x371)" * (cast_expression "(char *)(param_2 + 0x371)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x371)" ( (binary_expression "param_2 + 0x371" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }" { (expression_statement "bVar26 = *(byte *)(param_1 + 0xca);" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca)" identifier = (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00226a9c;" goto statement_identifier ;) })) })) (if_statement "if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }" if (parenthesized_expression "(*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8))" ( (binary_expression "*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)" (pointer_expression "*(long *)(param_1 + 0xb0)" * (cast_expression "(long *)(param_1 + 0xb0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) )))) != (pointer_expression "*(long *)(param_1 + 0xa8)" * (cast_expression "(long *)(param_1 + 0xa8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa8)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }" { comment (expression_statement "FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");" (call_expression "FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section")" identifier (argument_list "("../../gold/output.cc",0x9eb,"add_input_section")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""add_input_section"" " string_content ") ))) ;) })) (expression_statement "bVar26 = *(byte *)(param_1 + 0xca) | 1;" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca) | 1" identifier = (binary_expression "*(byte *)(param_1 + 0xca) | 1" (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(byte *)(param_1 + 0xca) = bVar26;" (assignment_expression "*(byte *)(param_1 + 0xca) = bVar26" (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) )))) = identifier) ;) }))) (labeled_statement "LAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;" statement_identifier : (if_statement "if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;" if (parenthesized_expression "(((bVar26 & 0x10) != 0) || (param_8 != '\0'))" ( (binary_expression "((bVar26 & 0x10) != 0) || (param_8 != '\0')" (parenthesized_expression "((bVar26 & 0x10) != 0)" ( (binary_expression "(bVar26 & 0x10) != 0" (parenthesized_expression "(bVar26 & 0x10)" ( (binary_expression "bVar26 & 0x10" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(param_8 != '\0')" ( (binary_expression "param_8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00226aba;" goto statement_identifier ;))) }))) (if_statement "if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0))))" ( (binary_expression "(*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))" (parenthesized_expression "(*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88))" ( (binary_expression "*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)" (pointer_expression "*(long *)(param_1 + 0x90)" * (cast_expression "(long *)(param_1 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) == (pointer_expression "*(long *)(param_1 + 0x88)" * (cast_expression "(long *)(param_1 + 0x88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) )) && (parenthesized_expression "(((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))" ( (parenthesized_expression "((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0))" ( (binary_expression "(*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)" (binary_expression "(*(byte *)(param_1 + 0xc9) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0xc9) & 4)" ( (binary_expression "*(byte *)(param_1 + 0xc9) & 4" (pointer_expression "*(byte *)(param_1 + 0xc9)" * (cast_expression "(byte *)(param_1 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc9)" ( (binary_expression "param_1 + 0xc9" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "((*(byte *)(param_1 + 0xc9) & 8) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0xc9) & 8) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0xc9) & 8)" ( (binary_expression "*(byte *)(param_1 + 0xc9) & 8" (pointer_expression "*(byte *)(param_1 + 0xc9)" * (cast_expression "(byte *)(param_1 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc9)" ( (binary_expression "param_1 + 0xc9" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }" { (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;" if (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00227060;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }" { (if_statement "if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }" if (parenthesized_expression "(*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0)" ( (binary_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0" (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) )))) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }" { (labeled_statement "LAB_00227090:\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/parameters.h",0x69,"target");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0017c650("../../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 ") ))) ;)) })) (if_statement "if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }" if (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 8) == 0)" ( (binary_expression "(PTR_DAT_0043e6b0[0x24] & 8) == 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 8)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 8" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }" { (expression_statement "pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);" (assignment_expression "pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" identifier = (pointer_expression "*(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" * (cast_expression "(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" ( (binary_expression "**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0" (pointer_expression "**(long **)(PTR_DAT_0043e6b0 + 0x18)" * (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }" if (parenthesized_expression "(pcVar4 == FUN_001b1290)" ( (binary_expression "pcVar4 == FUN_001b1290" identifier == identifier) )) (compound_statement "{\n            cVar8 = FUN_001f4a70();\n          }" { (expression_statement "cVar8 = FUN_001f4a70();" (assignment_expression "cVar8 = FUN_001f4a70()" identifier = (call_expression "FUN_001f4a70()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n            cVar8 = (*pcVar4)();\n          }" else (compound_statement "{\n            cVar8 = (*pcVar4)();\n          }" { (expression_statement "cVar8 = (*pcVar4)();" (assignment_expression "cVar8 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }" if (parenthesized_expression "((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0'))" ( (binary_expression "(cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')" (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(param_2 + 0x371) == '\0')" ( (binary_expression "*(char *)(param_2 + 0x371) == '\0'" (pointer_expression "*(char *)(param_2 + 0x371)" * (cast_expression "(char *)(param_2 + 0x371)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x371)" ( (binary_expression "param_2 + 0x371" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            return psVar11;\n          }" { (return_statement "return psVar11;" return identifier ;) })) })) })) })) }) (else_clause "else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }" else (compound_statement "{\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }" { (labeled_statement "LAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;" statement_identifier : (if_statement "if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;" if (parenthesized_expression "(((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0))" ( (binary_expression "((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)" (parenthesized_expression "((long)psVar11 <= (long)psVar14)" ( (binary_expression "(long)psVar11 <= (long)psVar14" (cast_expression "(long)psVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) <= (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) || (parenthesized_expression "((bVar26 & 1) != 0)" ( (binary_expression "(bVar26 & 1) != 0" (parenthesized_expression "(bVar26 & 1)" ( (binary_expression "bVar26 & 1" identifier & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00226aaa;" goto statement_identifier ;))) (if_statement "if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }" if (parenthesized_expression "(param_8 == '\0')" ( (binary_expression "param_8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }" { (if_statement "if ((uVar23 & 4) != 0) goto LAB_00226d8d;" if (parenthesized_expression "((uVar23 & 4) != 0)" ( (binary_expression "(uVar23 & 4) != 0" (parenthesized_expression "(uVar23 & 4)" ( (binary_expression "uVar23 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00226d8d;" goto statement_identifier ;)) (goto_statement "goto LAB_00226e42;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00226aba:\n  lVar18 = 0;" statement_identifier : (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;)) (if_statement "if (uVar20 != 0) {\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }" { (for_statement "for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }" for ( ; (binary_expression "(uVar20 >> lVar18 & 1) == 0" (parenthesized_expression "(uVar20 >> lVar18 & 1)" ( (binary_expression "uVar20 >> lVar18 & 1" (binary_expression "uVar20 >> lVar18" identifier >> identifier) & number_literal) )) == number_literal) ; (assignment_expression "lVar18 = lVar18 + 1" identifier = (binary_expression "lVar18 + 1" identifier + number_literal)) ) (compound_statement "{\n    }" { })) })) (expression_statement "iStack_74 = (int)lVar18;" (assignment_expression "iStack_74 = (int)lVar18" identifier = (cast_expression "(int)lVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (uVar20 == 0) {\n    iStack_74 = -1;\n  }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    iStack_74 = -1;\n  }" { (expression_statement "iStack_74 = -1;" (assignment_expression "iStack_74 = -1" identifier = number_literal) ;) })) (expression_statement "iStack_60 = 0;" (assignment_expression "iStack_60 = 0" identifier = number_literal) ;) (expression_statement "iStack_74 = iStack_74 + 1;" (assignment_expression "iStack_74 = iStack_74 + 1" identifier = (binary_expression "iStack_74 + 1" identifier + number_literal)) ;) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;) (if_statement "if (param_4 + 4 < 4) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }" if (parenthesized_expression "(param_4 + 4 < 4)" ( (binary_expression "param_4 + 4 < 4" (binary_expression "param_4 + 4" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }" { comment (expression_statement "FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");" (call_expression "FUN_0017c650("../../gold/output.h",0xe9a,"Input_section")" identifier (argument_list "("../../gold/output.h",0xe9a,"Input_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""Input_section"" " string_content ") ))) ;) })) (expression_statement "uStack_70 = uVar10;" (assignment_expression "uStack_70 = uVar10" identifier = identifier) ;) (expression_statement "lStack_68 = param_3;" (assignment_expression "lStack_68 = param_3" identifier = identifier) ;) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_00227060:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00227060:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_00227060:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0017c650("../../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 (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;" if (parenthesized_expression "(*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0)" ( (binary_expression "*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0" (pointer_expression "*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8)" * (cast_expression "(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00226b96;" goto statement_identifier ;)) (expression_statement "psVar14 = &local_48;" (assignment_expression "psVar14 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "local_58 = psVar14;" (assignment_expression "local_58 = psVar14" identifier = identifier) ;) (expression_statement "sVar12 = strlen((char *)param_5);" (assignment_expression "sVar12 = strlen((char *)param_5)" identifier = (call_expression "strlen((char *)param_5)" identifier (argument_list "((char *)param_5)" ( (cast_expression "(char *)param_5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "sStack_80 = sVar12;" (assignment_expression "sStack_80 = sVar12" identifier = identifier) ;) (if_statement "if (sVar12 < 0x10) {\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }\n  else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }" if (parenthesized_expression "(sVar12 < 0x10)" ( (binary_expression "sVar12 < 0x10" identifier < number_literal) )) (compound_statement "{\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }" { (if_statement "if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;" if (parenthesized_expression "(sVar12 == 1)" ( (binary_expression "sVar12 == 1" identifier == number_literal) )) (compound_statement "{\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }" { (expression_statement "local_48 = CONCAT71(local_48._1_7_,*param_5);" (assignment_expression "local_48 = CONCAT71(local_48._1_7_,*param_5)" identifier = (call_expression "CONCAT71(local_48._1_7_,*param_5)" identifier (argument_list "(local_48._1_7_,*param_5)" ( (field_expression "local_48._1_7_" identifier . field_identifier) , (pointer_expression "*param_5" * identifier) )))) ;) }) (else_clause "else if (sVar12 != 0) goto LAB_00226f36;" else (if_statement "if (sVar12 != 0) goto LAB_00226f36;" if (parenthesized_expression "(sVar12 != 0)" ( (binary_expression "sVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00226f36;" goto statement_identifier ;)))) }) (else_clause "else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }" else (compound_statement "{\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }" { (expression_statement "psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);" (assignment_expression "psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0)" identifier = (cast_expression "(size_t *)FUN_002e15a0(&local_58,&sStack_80,0)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002e15a0(&local_58,&sStack_80,0)" identifier (argument_list "(&local_58,&sStack_80,0)" ( (pointer_expression "&local_58" & identifier) , (pointer_expression "&sStack_80" & identifier) , number_literal ))))) ;) (expression_statement "local_48 = sStack_80;" (assignment_expression "local_48 = sStack_80" identifier = identifier) ;) (expression_statement "local_58 = psVar14;" (assignment_expression "local_58 = psVar14" identifier = identifier) ;) (labeled_statement "LAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);" statement_identifier : (expression_statement "memcpy(psVar14,param_5,sVar12);" (call_expression "memcpy(psVar14,param_5,sVar12)" identifier (argument_list "(psVar14,param_5,sVar12)" ( identifier , identifier , identifier ))) ;)) (expression_statement "psVar14 = local_58;" (assignment_expression "psVar14 = local_58" identifier = identifier) ;) }))) (expression_statement "*(undefined1 *)((long)psVar14 + sStack_80) = 0;" (assignment_expression "*(undefined1 *)((long)psVar14 + sStack_80) = 0" (pointer_expression "*(undefined1 *)((long)psVar14 + sStack_80)" * (cast_expression "(undefined1 *)((long)psVar14 + sStack_80)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar14 + sStack_80)" ( (binary_expression "(long)psVar14 + sStack_80" (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_50 = sStack_80;" (assignment_expression "local_50 = sStack_80" identifier = identifier) ;) comment (expression_statement "iVar9 = FUN_001ac380(param_2,&local_58);" (assignment_expression "iVar9 = FUN_001ac380(param_2,&local_58)" identifier = (call_expression "FUN_001ac380(param_2,&local_58)" identifier (argument_list "(param_2,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (local_58 != &local_48) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(local_58 != &local_48)" ( (binary_expression "local_58 != &local_48" identifier != (pointer_expression "&local_48" & identifier)) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (iVar9 != 0) {\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }" { (expression_statement "*(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;" (assignment_expression "*(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2" (pointer_expression "*(byte *)(param_1 + 0xc9)" * (cast_expression "(byte *)(param_1 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc9)" ( (binary_expression "param_1 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0xc9) | 2" (pointer_expression "*(byte *)(param_1 + 0xc9)" * (cast_expression "(byte *)(param_1 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc9)" ( (binary_expression "param_1 + 0xc9" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "iStack_60 = iVar9;" (assignment_expression "iStack_60 = iVar9" identifier = identifier) ;) })) (labeled_statement "LAB_00226b96:\n  puVar3 = *(undefined8 **)(param_1 + 0x90);" statement_identifier : (expression_statement "puVar3 = *(undefined8 **)(param_1 + 0x90);" (assignment_expression "puVar3 = *(undefined8 **)(param_1 + 0x90)" identifier = (pointer_expression "*(undefined8 **)(param_1 + 0x90)" * (cast_expression "(undefined8 **)(param_1 + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) ))))) ;)) (if_statement "if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }" if (parenthesized_expression "(puVar3 != *(undefined8 **)(param_1 + 0x98))" ( (binary_expression "puVar3 != *(undefined8 **)(param_1 + 0x98)" identifier != (pointer_expression "*(undefined8 **)(param_1 + 0x98)" * (cast_expression "(undefined8 **)(param_1 + 0x98)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) ))))) )) (compound_statement "{\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }" { (expression_statement "*puVar3 = CONCAT44(iStack_74,local_78);" (assignment_expression "*puVar3 = CONCAT44(iStack_74,local_78)" (pointer_expression "*puVar3" * identifier) = (call_expression "CONCAT44(iStack_74,local_78)" identifier (argument_list "(iStack_74,local_78)" ( identifier , identifier )))) ;) (expression_statement "puVar3[1] = uStack_70;" (assignment_expression "puVar3[1] = uStack_70" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[2] = lStack_68;" (assignment_expression "puVar3[2] = lStack_68" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[3] = CONCAT44(uStack_5c,iStack_60);" (assignment_expression "puVar3[3] = CONCAT44(uStack_5c,iStack_60)" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = (call_expression "CONCAT44(uStack_5c,iStack_60)" identifier (argument_list "(uStack_5c,iStack_60)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 **)(param_1 + 0x90) = puVar3 + 4;" (assignment_expression "*(undefined8 **)(param_1 + 0x90) = puVar3 + 4" (pointer_expression "*(undefined8 **)(param_1 + 0x90)" * (cast_expression "(undefined8 **)(param_1 + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) = (binary_expression "puVar3 + 4" identifier + number_literal)) ;) (return_statement "return psVar11;" return identifier ;) })) (expression_statement "FUN_0020a990(param_1 + 0x88,puVar3,&local_78);" (call_expression "FUN_0020a990(param_1 + 0x88,puVar3,&local_78)" identifier (argument_list "(param_1 + 0x88,puVar3,&local_78)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) , identifier , (pointer_expression "&local_78" & identifier) ))) ;) (return_statement "return psVar11;" return identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original name: add_input_section<32, false>\n   DWARF original prototype: off_t add_input_section<32,_false>(Output_section * this, Layout *\n   layout, Sized_relobj_file<32,_false> * object, uint shndx, char * secname, Shdr<32,_false> *\n   shdr, uint reloc_shndx, bool have_sections_script) */\n\noff_t __thiscall\ngold::Output_section::add_input_section<32,_false>\n          (Output_section *this,Layout *layout,Sized_relobj_file<32,_false> *object,uint shndx,\n          char *secname,Shdr<32,_false> *shdr,uint reloc_shndx,bool have_sections_script)\n\n{\n  _Rb_tree_header *p_Var1;\n  _Base_ptr *pp_Var2;\n  Compressed_section_map *pCVar3;\n  _Base_ptr p_Var4;\n  iterator __position;\n  Target *pTVar5;\n  ulong uVar6;\n  undefined1 keeps_input_sections;\n  char cVar7;\n  uint uVar8;\n  ulong len;\n  pointer pcVar9;\n  size_t __n;\n  char *pcVar10;\n  off_t oVar11;\n  char *format;\n  Output_data_const *this_00;\n  pointer pcVar12;\n  _Base_ptr p_Var13;\n  _Base_ptr p_Var14;\n  long lVar15;\n  Shdr_data<32> *pSVar16;\n  int iVar17;\n  ulong uVar18;\n  ulong addralign;\n  byte *pbVar19;\n  byte *pbVar20;\n  Output_section *this_01;\n  bool bVar21;\n  bool bVar22;\n  byte bVar23;\n  uint64_t local_a0;\n  size_type __dnew;\n  string fill_data;\n  undefined1 local_58 [40];\n  \n  bVar23 = 0;\n  pSVar16 = shdr->p_;\n  uVar18 = (ulong)pSVar16->sh_addralign;\n  len = (ulong)pSVar16->sh_size;\n  pCVar3 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.compressed_sections_;\n  if (pCVar3 == (Compressed_section_map *)0x0) {\nLAB_002269ca:\n    uVar6 = uVar18 - 1 & uVar18;\n  }\n  else {\n    p_Var1 = &(pCVar3->_M_t)._M_impl.super__Rb_tree_header;\n    p_Var4 = (pCVar3->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n    p_Var13 = &p_Var1->_M_header;\n    if (p_Var4 == (_Base_ptr)0x0) goto LAB_002269ca;\n    do {\n      while (p_Var14 = p_Var4, shndx <= p_Var14[1]._M_color) {\n        p_Var4 = p_Var14->_M_left;\n        p_Var13 = p_Var14;\n        if (p_Var14->_M_left == (_Base_ptr)0x0) goto LAB_002269bb;\n      }\n      pp_Var2 = &p_Var14->_M_right;\n      p_Var4 = *pp_Var2;\n      p_Var14 = p_Var13;\n    } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_002269bb:\n    if ((p_Var1 == (_Rb_tree_header *)p_Var14) ||\n       (shndx < (uint)((_Rb_tree_header *)p_Var14)->_M_node_count)) goto LAB_002269ca;\n    len = *(ulong *)((long)p_Var14 + 0x28);\n    uVar18 = *(ulong *)((undefined1 *)((long)p_Var14 + 0x28) + 0x10);\n    uVar6 = uVar18 - 1 & uVar18;\n  }\n  addralign = uVar18;\n  if (uVar6 != 0) {\n    pcVar10 = (char *)gettext("invalid alignment %lu for section \"%s\"");\n    addralign = 1;\n    Object::error((Object *)object,pcVar10,uVar18,secname);\n    pSVar16 = shdr->p_;\n  }\n  bVar21 = this->addralign_ < addralign;\n  bVar22 = this->addralign_ == addralign;\n  if (bVar21) {\n    this->addralign_ = addralign;\n  }\n  lVar15 = 0xb;\n  uVar8 = pSVar16->sh_flags;\n  pbVar19 = (byte *)secname;\n  pbVar20 = (byte *)".debug_str";\n  do {\n    if (lVar15 == 0) break;\n    lVar15 = lVar15 + -1;\n    bVar21 = *pbVar19 < *pbVar20;\n    bVar22 = *pbVar19 == *pbVar20;\n    pbVar19 = pbVar19 + (ulong)bVar23 * -2 + 1;\n    pbVar20 = pbVar20 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  if ((!bVar21 && !bVar22) == bVar21) {\n    local_a0 = 1;\n    uVar8 = uVar8 | 0x30;\n  }\n  else {\n    local_a0 = (uint64_t)pSVar16->sh_entsize;\n  }\n  this_01 = this;\n  update_flags_for_input_section(this,(ulong)uVar8);\n  if ((this->field_0xca & 2) == 0) {\n    set_entsize(this_01,local_a0);\n  }\n  if (((((uVar8 & 0x10) != 0) && (reloc_shndx == 0)) && (shdr->p_->sh_size != 0)) &&\n     (bVar21 = Parameters::incremental(parameters), !bVar21)) {\n    if (((this->field_0xca & 0x10) != 0) || (have_sections_script)) {\n      keeps_input_sections = true;\n    }\n    else {\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if ((parameters->options_ == (General_options *)0x0) ||\n         (keeps_input_sections = true, (parameters->debug_ & 8) == 0)) {\n        if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n          keeps_input_sections = Target::do_may_relax(pTVar5);\n        }\n        else {\n          keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();\n        }\n      }\n    }\n    bVar21 = add_merge_input_section\n                       (this,(Relobj *)object,shndx,(ulong)uVar8,local_a0,addralign,\n                        (bool)keeps_input_sections);\n    if (bVar21) {\n      return -1;\n    }\n  }\n  bVar23 = this->field_0xca;\n  if ((bVar23 & 0x20) != 0) {\n    oVar11 = Free_list::allocate(&this->free_list_,len,addralign,0);\n    if (oVar11 != -1) {\n      return oVar11;\n    }\n    pcVar10 = this->name_;\n    format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");\n                    /* WARNING: Subroutine does not return */\n    gold_fallback(format,pcVar10);\n  }\n  pcVar12 = (pointer)(this->super_Output_data).data_size_;\n  pcVar9 = pcVar12;\n  if (addralign != 0) {\n    pcVar9 = (pointer)((ulong)(pcVar12 + (addralign - 1)) & -addralign);\n  }\n  if (((this->super_Output_data).field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  (this->super_Output_data).data_size_ = (off_t)(pcVar9 + len);\n  if (((bVar23 & 1) != 0) || (have_sections_script)) {\nLAB_00226a9c:\n    if (((long)pcVar9 <= (long)pcVar12) || ((bVar23 & 1) != 0)) goto LAB_00226aaa;\n    if (!have_sections_script) {\n      if ((uVar8 & 4) != 0) {\nLAB_00226d8d:\n        pTVar5 = parameters->target_;\n        if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n        if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) != '\0') {\n          local_58._8_8_ = (long)pcVar9 - (long)pcVar12;\n          if ((this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start) {\n            local_58._0_8_ = pcVar12;\n            std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);\n            bVar23 = this->field_0xca;\n          }\n          else {\n            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n            this_00 = (Output_data_const *)operator_new(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n            Output_data_const::Output_data_const(this_00,&fill_data,1);\n            local_58._24_4_ = 0;\n            local_58._0_8_ = (pointer)0xffffffff;\n            local_58._8_8_ = 0;\n            local_58._16_8_ = this_00;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }\n            bVar23 = this->field_0xca;\n          }\n        }\n      }\nLAB_00226e42:\n      if ((bVar23 & 0x10) != 0) goto LAB_00226aba;\n      goto LAB_00226e4b;\n    }\n  }\n  else {\n    if ((uVar8 & 4) == 0) {\n      if ((long)pcVar12 < (long)pcVar9) goto LAB_00226e42;\n    }\n    else {\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) == '\0') {\n        if ((long)pcVar12 < (long)pcVar9) goto LAB_00226d8d;\n      }\n      else {\n        if ((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)) {\n          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }\n          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }\n        }\n        if ((this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_start) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar23 = this->field_0xca | 1;\n        this->field_0xca = bVar23;\n      }\n    }\nLAB_00226aaa:\n    if (((bVar23 & 0x10) == 0) && (!have_sections_script)) {\nLAB_00226e4b:\n      if (((this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_00227060;\n        if ((parameters->options_->Map_).user_set_via_option == false) {\n          pTVar5 = parameters->target_;\n          if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }\n          if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_00226aba:\n  lVar15 = 0;\n  if (addralign != 0) {\n    for (; (addralign >> lVar15 & 1) == 0; lVar15 = lVar15 + 1) {\n    }\n  }\n  iVar17 = (int)lVar15;\n  if (addralign == 0) {\n    iVar17 = -1;\n  }\n  fill_data.field_2._8_4_ = 0;\n  fill_data._M_dataplus._M_p._4_4_ = iVar17 + 1;\n  fill_data._M_dataplus._M_p._0_4_ = shndx;\n  if (shndx + 4 < 4) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe9a,"Input_section");\n  }\n  fill_data._M_string_length = len;\n  fill_data.field_2._M_allocated_capacity = (size_type)object;\n  if (parameters->options_ == (General_options *)0x0) {\nLAB_00227060:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if ((parameters->options_->section_ordering_file_).value == (char *)0x0) goto LAB_00226b96;\n  pcVar12 = local_58 + 0x10;\n  local_58._0_8_ = pcVar12;\n  __n = strlen(secname);\n  __dnew = __n;\n  if (__n < 0x10) {\n    if (__n == 1) {\n      local_58[0x10] = *secname;\n    }\n    else if (__n != 0) goto LAB_00226f36;\n  }\n  else {\n    pcVar12 = (pointer)std::string::_M_create((string *)local_58,&__dnew,0);\n    local_58._16_8_ = __dnew;\n    local_58._0_8_ = pcVar12;\nLAB_00226f36:\n    memcpy(pcVar12,secname,__n);\n    pcVar12 = (pointer)local_58._0_8_;\n  }\n  pcVar12[__dnew] = '\0';\n  local_58._8_8_ = __dnew;\n                    /* try { // try from 00226b6a to 00226b6e has its CatchHandler @ 002270c0 */\n  uVar8 = Layout::find_section_order_index(layout,(string *)local_58);\n  if ((undefined1 *)local_58._0_8_ != local_58 + 0x10) {\n    operator_delete((void *)local_58._0_8_);\n  }\n  if (uVar8 != 0) {\n    this->field_0xc9 = this->field_0xc9 | 2;\n    fill_data.field_2._8_4_ = uVar8;\n  }\nLAB_00226b96:\n  __position._M_current =\n       (this->input_sections_).\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_finish;\n  if (__position._M_current ==\n      (this->input_sections_).\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_end_of_storage) {\n    std::\n    vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&this->input_sections_,__position,(Input_section *)&fill_data);\n  }\n  else {\n    (__position._M_current)->shndx_ =\n         (int)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p);\n    (__position._M_current)->p2align_ =\n         (int)(CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) >> 0x20);\n    ((__position._M_current)->u1_).entsize = fill_data._M_string_length;\n    (__position._M_current)->u2_ =\n         (anon_union_8_4_139239c7_for_u2_)fill_data.field_2._M_allocated_capacity;\n    *(ulong *)&(__position._M_current)->section_order_index_ =\n         CONCAT44(fill_data.field_2._12_4_,fill_data.field_2._8_4_);\n    (this->input_sections_).\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }\n  return (off_t)pcVar9;\n}\n\n" comment comment comment (declaration "off_t __thiscall\ngold::Output_section::add_input_section<32,_false>\n          (Output_section *this,Layout *layout,Sized_relobj_file<32,_false> *object,uint shndx,\n          char *secname,Shdr<32,_false> *shdr,uint reloc_shndx,bool have_sections_script)\n\n{\n  _Rb_tree_header *p_Var1;" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_section::" identifier : : identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_false>\n          (Output_section *this,Layout *layout,Sized_relobj_file<32,_false> *object,uint shndx,\n          char *secname,Shdr<32,_false> *shdr,uint reloc_shndx,bool have_sections_script)\n\n{\n  _Rb_tree_header" (function_declarator "_false>\n          (Output_section *this,Layout *layout,Sized_relobj_file<32,_false> *object,uint shndx,\n          char *secname,Shdr<32,_false> *shdr,uint reloc_shndx,bool have_sections_script)" identifier (ERROR ">" >) (parameter_list "(Output_section *this,Layout *layout,Sized_relobj_file<32,_false> *object,uint shndx,\n          char *secname,Shdr<32,_false> *shdr,uint reloc_shndx,bool have_sections_script)" ( (parameter_declaration "Output_section *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Layout *layout" type_identifier (pointer_declarator "*layout" * identifier)) , (parameter_declaration "Sized_relobj_file" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *object" type_identifier (ERROR ">" >) (pointer_declarator "*object" * identifier)) , (parameter_declaration "uint shndx" type_identifier identifier) , (parameter_declaration "char *secname" primitive_type (pointer_declarator "*secname" * identifier)) , (parameter_declaration "Shdr" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *shdr" type_identifier (ERROR ">" >) (pointer_declarator "*shdr" * identifier)) , (parameter_declaration "uint reloc_shndx" type_identifier identifier) , (parameter_declaration "bool have_sections_script" primitive_type identifier) ))) { identifier) (pointer_declarator "*p_Var1" * identifier) ;) (declaration "_Base_ptr *pp_Var2;" type_identifier (pointer_declarator "*pp_Var2" * identifier) ;) (declaration "Compressed_section_map *pCVar3;" type_identifier (pointer_declarator "*pCVar3" * identifier) ;) (declaration "_Base_ptr p_Var4;" type_identifier identifier ;) (declaration "iterator __position;" type_identifier identifier ;) (declaration "Target *pTVar5;" type_identifier (pointer_declarator "*pTVar5" * identifier) ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "undefined1 keeps_input_sections;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "ulong len;" type_identifier identifier ;) (declaration "pointer pcVar9;" type_identifier identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "off_t oVar11;" type_identifier identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "Output_data_const *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "pointer pcVar12;" type_identifier identifier ;) (declaration "_Base_ptr p_Var13;" type_identifier identifier ;) (declaration "_Base_ptr p_Var14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (expression_statement "Shdr_data<32> *pSVar16;" (update_expression "Shdr_data<32> *pSVar16" (binary_expression "Shdr_data<32> *pSVar16" (binary_expression "Shdr_data<32" identifier < number_literal) > (pointer_expression "*pSVar16" * identifier)) --) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "ulong addralign;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "Output_section *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "uint64_t local_a0;" primitive_type identifier ;) (declaration "size_type __dnew;" type_identifier identifier ;) (declaration "string fill_data;" type_identifier identifier ;) (declaration "undefined1 local_58 [40];" type_identifier (array_declarator "local_58 [40]" identifier [ number_literal ]) ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "pSVar16 = shdr->p_;" (assignment_expression "pSVar16 = shdr->p_" identifier = (field_expression "shdr->p_" identifier -> field_identifier)) ;) (expression_statement "uVar18 = (ulong)pSVar16->sh_addralign;" (assignment_expression "uVar18 = (ulong)pSVar16->sh_addralign" identifier = (cast_expression "(ulong)pSVar16->sh_addralign" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pSVar16->sh_addralign" identifier -> field_identifier))) ;) (expression_statement "len = (ulong)pSVar16->sh_size;" (assignment_expression "len = (ulong)pSVar16->sh_size" identifier = (cast_expression "(ulong)pSVar16->sh_size" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pSVar16->sh_size" identifier -> field_identifier))) ;) (expression_statement "pCVar3 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.compressed_sections_;" (assignment_expression "pCVar3 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.compressed_sections_" identifier = (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.compressed_sections_" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_false>)" ( (comma_expression "object->super_Sized_relobj<32,_false" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (if_statement "if (pCVar3 == (Compressed_section_map *)0x0) {\nLAB_002269ca:\n    uVar6 = uVar18 - 1 & uVar18;\n  }\n  else {\n    p_Var1 = &(pCVar3->_M_t)._M_impl.super__Rb_tree_header;\n    p_Var4 = (pCVar3->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n    p_Var13 = &p_Var1->_M_header;\n    if (p_Var4 == (_Base_ptr)0x0) goto LAB_002269ca;\n    do {\n      while (p_Var14 = p_Var4, shndx <= p_Var14[1]._M_color) {\n        p_Var4 = p_Var14->_M_left;\n        p_Var13 = p_Var14;\n        if (p_Var14->_M_left == (_Base_ptr)0x0) goto LAB_002269bb;\n      }\n      pp_Var2 = &p_Var14->_M_right;\n      p_Var4 = *pp_Var2;\n      p_Var14 = p_Var13;\n    } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_002269bb:\n    if ((p_Var1 == (_Rb_tree_header *)p_Var14) ||\n       (shndx < (uint)((_Rb_tree_header *)p_Var14)->_M_node_count)) goto LAB_002269ca;\n    len = *(ulong *)((long)p_Var14 + 0x28);\n    uVar18 = *(ulong *)((undefined1 *)((long)p_Var14 + 0x28) + 0x10);\n    uVar6 = uVar18 - 1 & uVar18;\n  }" if (parenthesized_expression "(pCVar3 == (Compressed_section_map *)0x0)" ( (binary_expression "pCVar3 == (Compressed_section_map *)0x0" identifier == (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_002269ca:\n    uVar6 = uVar18 - 1 & uVar18;\n  }" { (labeled_statement "LAB_002269ca:\n    uVar6 = uVar18 - 1 & uVar18;" statement_identifier : (expression_statement "uVar6 = uVar18 - 1 & uVar18;" (assignment_expression "uVar6 = uVar18 - 1 & uVar18" identifier = (binary_expression "uVar18 - 1 & uVar18" (binary_expression "uVar18 - 1" identifier - number_literal) & identifier)) ;)) }) (else_clause "else {\n    p_Var1 = &(pCVar3->_M_t)._M_impl.super__Rb_tree_header;\n    p_Var4 = (pCVar3->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n    p_Var13 = &p_Var1->_M_header;\n    if (p_Var4 == (_Base_ptr)0x0) goto LAB_002269ca;\n    do {\n      while (p_Var14 = p_Var4, shndx <= p_Var14[1]._M_color) {\n        p_Var4 = p_Var14->_M_left;\n        p_Var13 = p_Var14;\n        if (p_Var14->_M_left == (_Base_ptr)0x0) goto LAB_002269bb;\n      }\n      pp_Var2 = &p_Var14->_M_right;\n      p_Var4 = *pp_Var2;\n      p_Var14 = p_Var13;\n    } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_002269bb:\n    if ((p_Var1 == (_Rb_tree_header *)p_Var14) ||\n       (shndx < (uint)((_Rb_tree_header *)p_Var14)->_M_node_count)) goto LAB_002269ca;\n    len = *(ulong *)((long)p_Var14 + 0x28);\n    uVar18 = *(ulong *)((undefined1 *)((long)p_Var14 + 0x28) + 0x10);\n    uVar6 = uVar18 - 1 & uVar18;\n  }" else (compound_statement "{\n    p_Var1 = &(pCVar3->_M_t)._M_impl.super__Rb_tree_header;\n    p_Var4 = (pCVar3->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n    p_Var13 = &p_Var1->_M_header;\n    if (p_Var4 == (_Base_ptr)0x0) goto LAB_002269ca;\n    do {\n      while (p_Var14 = p_Var4, shndx <= p_Var14[1]._M_color) {\n        p_Var4 = p_Var14->_M_left;\n        p_Var13 = p_Var14;\n        if (p_Var14->_M_left == (_Base_ptr)0x0) goto LAB_002269bb;\n      }\n      pp_Var2 = &p_Var14->_M_right;\n      p_Var4 = *pp_Var2;\n      p_Var14 = p_Var13;\n    } while (*pp_Var2 != (_Base_ptr)0x0);\nLAB_002269bb:\n    if ((p_Var1 == (_Rb_tree_header *)p_Var14) ||\n       (shndx < (uint)((_Rb_tree_header *)p_Var14)->_M_node_count)) goto LAB_002269ca;\n    len = *(ulong *)((long)p_Var14 + 0x28);\n    uVar18 = *(ulong *)((undefined1 *)((long)p_Var14 + 0x28) + 0x10);\n    uVar6 = uVar18 - 1 & uVar18;\n  }" { (expression_statement "p_Var1 = &(pCVar3->_M_t)._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var1 = &(pCVar3->_M_t)._M_impl.super__Rb_tree_header" identifier = (pointer_expression "&(pCVar3->_M_t)._M_impl.super__Rb_tree_header" & (field_expression "(pCVar3->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar3->_M_t)._M_impl" (parenthesized_expression "(pCVar3->_M_t)" ( (field_expression "pCVar3->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "p_Var4 = (pCVar3->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;" (assignment_expression "p_Var4 = (pCVar3->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent" identifier = (field_expression "(pCVar3->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent" (field_expression "(pCVar3->_M_t)._M_impl.super__Rb_tree_header._M_header" (field_expression "(pCVar3->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar3->_M_t)._M_impl" (parenthesized_expression "(pCVar3->_M_t)" ( (field_expression "pCVar3->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var13 = &p_Var1->_M_header;" (assignment_expression "p_Var13 = &p_Var1->_M_header" identifier = (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier))) ;) (if_statement "if (p_Var4 == (_Base_ptr)0x0) goto LAB_002269ca;" if (parenthesized_expression "(p_Var4 == (_Base_ptr)0x0)" ( (binary_expression "p_Var4 == (_Base_ptr)0x0" identifier == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_002269ca;" goto statement_identifier ;)) (do_statement "do {\n      while (p_Var14 = p_Var4, shndx <= p_Var14[1]._M_color) {\n        p_Var4 = p_Var14->_M_left;\n        p_Var13 = p_Var14;\n        if (p_Var14->_M_left == (_Base_ptr)0x0) goto LAB_002269bb;\n      }\n      pp_Var2 = &p_Var14->_M_right;\n      p_Var4 = *pp_Var2;\n      p_Var14 = p_Var13;\n    } while (*pp_Var2 != (_Base_ptr)0x0);" do (compound_statement "{\n      while (p_Var14 = p_Var4, shndx <= p_Var14[1]._M_color) {\n        p_Var4 = p_Var14->_M_left;\n        p_Var13 = p_Var14;\n        if (p_Var14->_M_left == (_Base_ptr)0x0) goto LAB_002269bb;\n      }\n      pp_Var2 = &p_Var14->_M_right;\n      p_Var4 = *pp_Var2;\n      p_Var14 = p_Var13;\n    }" { (while_statement "while (p_Var14 = p_Var4, shndx <= p_Var14[1]._M_color) {\n        p_Var4 = p_Var14->_M_left;\n        p_Var13 = p_Var14;\n        if (p_Var14->_M_left == (_Base_ptr)0x0) goto LAB_002269bb;\n      }" while (parenthesized_expression "(p_Var14 = p_Var4, shndx <= p_Var14[1]._M_color)" ( (comma_expression "p_Var14 = p_Var4, shndx <= p_Var14[1]._M_color" (assignment_expression "p_Var14 = p_Var4" identifier = identifier) , (binary_expression "shndx <= p_Var14[1]._M_color" identifier <= (field_expression "p_Var14[1]._M_color" (subscript_expression "p_Var14[1]" identifier [ number_literal ]) . field_identifier))) )) (compound_statement "{\n        p_Var4 = p_Var14->_M_left;\n        p_Var13 = p_Var14;\n        if (p_Var14->_M_left == (_Base_ptr)0x0) goto LAB_002269bb;\n      }" { (expression_statement "p_Var4 = p_Var14->_M_left;" (assignment_expression "p_Var4 = p_Var14->_M_left" identifier = (field_expression "p_Var14->_M_left" identifier -> field_identifier)) ;) (expression_statement "p_Var13 = p_Var14;" (assignment_expression "p_Var13 = p_Var14" identifier = identifier) ;) (if_statement "if (p_Var14->_M_left == (_Base_ptr)0x0) goto LAB_002269bb;" if (parenthesized_expression "(p_Var14->_M_left == (_Base_ptr)0x0)" ( (binary_expression "p_Var14->_M_left == (_Base_ptr)0x0" (field_expression "p_Var14->_M_left" identifier -> field_identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_002269bb;" goto statement_identifier ;)) })) (expression_statement "pp_Var2 = &p_Var14->_M_right;" (assignment_expression "pp_Var2 = &p_Var14->_M_right" identifier = (pointer_expression "&p_Var14->_M_right" & (field_expression "p_Var14->_M_right" identifier -> field_identifier))) ;) (expression_statement "p_Var4 = *pp_Var2;" (assignment_expression "p_Var4 = *pp_Var2" identifier = (pointer_expression "*pp_Var2" * identifier)) ;) (expression_statement "p_Var14 = p_Var13;" (assignment_expression "p_Var14 = p_Var13" identifier = identifier) ;) }) while (parenthesized_expression "(*pp_Var2 != (_Base_ptr)0x0)" ( (binary_expression "*pp_Var2 != (_Base_ptr)0x0" (pointer_expression "*pp_Var2" * identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_002269bb:\n    if ((p_Var1 == (_Rb_tree_header *)p_Var14) ||\n       (shndx < (uint)((_Rb_tree_header *)p_Var14)->_M_node_count)) goto LAB_002269ca;" statement_identifier : (if_statement "if ((p_Var1 == (_Rb_tree_header *)p_Var14) ||\n       (shndx < (uint)((_Rb_tree_header *)p_Var14)->_M_node_count)) goto LAB_002269ca;" if (parenthesized_expression "((p_Var1 == (_Rb_tree_header *)p_Var14) ||\n       (shndx < (uint)((_Rb_tree_header *)p_Var14)->_M_node_count))" ( (binary_expression "(p_Var1 == (_Rb_tree_header *)p_Var14) ||\n       (shndx < (uint)((_Rb_tree_header *)p_Var14)->_M_node_count)" (parenthesized_expression "(p_Var1 == (_Rb_tree_header *)p_Var14)" ( (binary_expression "p_Var1 == (_Rb_tree_header *)p_Var14" identifier == (cast_expression "(_Rb_tree_header *)p_Var14" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) || (parenthesized_expression "(shndx < (uint)((_Rb_tree_header *)p_Var14)->_M_node_count)" ( (binary_expression "shndx < (uint)((_Rb_tree_header *)p_Var14)->_M_node_count" identifier < (field_expression "(uint)((_Rb_tree_header *)p_Var14)->_M_node_count" (call_expression "(uint)((_Rb_tree_header *)p_Var14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((_Rb_tree_header *)p_Var14)" ( (cast_expression "(_Rb_tree_header *)p_Var14" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) -> field_identifier)) ))) )) (goto_statement "goto LAB_002269ca;" goto statement_identifier ;))) (expression_statement "len = *(ulong *)((long)p_Var14 + 0x28);" (assignment_expression "len = *(ulong *)((long)p_Var14 + 0x28)" identifier = (pointer_expression "*(ulong *)((long)p_Var14 + 0x28)" * (cast_expression "(ulong *)((long)p_Var14 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p_Var14 + 0x28)" ( (binary_expression "(long)p_Var14 + 0x28" (cast_expression "(long)p_Var14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar18 = *(ulong *)((undefined1 *)((long)p_Var14 + 0x28) + 0x10);" (assignment_expression "uVar18 = *(ulong *)((undefined1 *)((long)p_Var14 + 0x28) + 0x10)" identifier = (pointer_expression "*(ulong *)((undefined1 *)((long)p_Var14 + 0x28) + 0x10)" * (cast_expression "(ulong *)((undefined1 *)((long)p_Var14 + 0x28) + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((long)p_Var14 + 0x28) + 0x10)" ( (binary_expression "(undefined1 *)((long)p_Var14 + 0x28) + 0x10" (cast_expression "(undefined1 *)((long)p_Var14 + 0x28)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p_Var14 + 0x28)" ( (binary_expression "(long)p_Var14 + 0x28" (cast_expression "(long)p_Var14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) + number_literal) ))))) ;) (expression_statement "uVar6 = uVar18 - 1 & uVar18;" (assignment_expression "uVar6 = uVar18 - 1 & uVar18" identifier = (binary_expression "uVar18 - 1 & uVar18" (binary_expression "uVar18 - 1" identifier - number_literal) & identifier)) ;) }))) (expression_statement "addralign = uVar18;" (assignment_expression "addralign = uVar18" identifier = identifier) ;) (if_statement "if (uVar6 != 0) {\n    pcVar10 = (char *)gettext("invalid alignment %lu for section \"%s\"");\n    addralign = 1;\n    Object::error((Object *)object,pcVar10,uVar18,secname);\n    pSVar16 = shdr->p_;\n  }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar10 = (char *)gettext("invalid alignment %lu for section \"%s\"");\n    addralign = 1;\n    Object::error((Object *)object,pcVar10,uVar18,secname);\n    pSVar16 = shdr->p_;\n  }" { (expression_statement "pcVar10 = (char *)gettext("invalid alignment %lu for section \"%s\"");" (assignment_expression "pcVar10 = (char *)gettext("invalid alignment %lu for section \"%s\"")" identifier = (cast_expression "(char *)gettext("invalid alignment %lu for section \"%s\"")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("invalid alignment %lu for section \"%s\"")" identifier (argument_list "("invalid alignment %lu for section \"%s\"")" ( (string_literal ""invalid alignment %lu for section \"%s\""" " string_content escape_sequence string_content escape_sequence ") ))))) ;) (expression_statement "addralign = 1;" (assignment_expression "addralign = 1" identifier = number_literal) ;) (labeled_statement "Object::error((Object *)object,pcVar10,uVar18,secname);" statement_identifier : (ERROR ":" :) (expression_statement "error((Object *)object,pcVar10,uVar18,secname);" (call_expression "error((Object *)object,pcVar10,uVar18,secname)" identifier (argument_list "((Object *)object,pcVar10,uVar18,secname)" ( (cast_expression "(Object *)object" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier ))) ;)) (expression_statement "pSVar16 = shdr->p_;" (assignment_expression "pSVar16 = shdr->p_" identifier = (field_expression "shdr->p_" identifier -> field_identifier)) ;) })) (expression_statement "bVar21 = this->addralign_ < addralign;" (assignment_expression "bVar21 = this->addralign_ < addralign" identifier = (binary_expression "this->addralign_ < addralign" (field_expression "this->addralign_" identifier -> field_identifier) < identifier)) ;) (expression_statement "bVar22 = this->addralign_ == addralign;" (assignment_expression "bVar22 = this->addralign_ == addralign" identifier = (binary_expression "this->addralign_ == addralign" (field_expression "this->addralign_" identifier -> field_identifier) == identifier)) ;) (if_statement "if (bVar21) {\n    this->addralign_ = addralign;\n  }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n    this->addralign_ = addralign;\n  }" { (expression_statement "this->addralign_ = addralign;" (assignment_expression "this->addralign_ = addralign" (field_expression "this->addralign_" identifier -> field_identifier) = identifier) ;) })) (expression_statement "lVar15 = 0xb;" (assignment_expression "lVar15 = 0xb" identifier = number_literal) ;) (expression_statement "uVar8 = pSVar16->sh_flags;" (assignment_expression "uVar8 = pSVar16->sh_flags" identifier = (field_expression "pSVar16->sh_flags" identifier -> field_identifier)) ;) (expression_statement "pbVar19 = (byte *)secname;" (assignment_expression "pbVar19 = (byte *)secname" identifier = (cast_expression "(byte *)secname" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar20 = (byte *)".debug_str";" (assignment_expression "pbVar20 = (byte *)".debug_str"" identifier = (cast_expression "(byte *)".debug_str"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug_str"" " string_content "))) ;) (do_statement "do {\n    if (lVar15 == 0) break;\n    lVar15 = lVar15 + -1;\n    bVar21 = *pbVar19 < *pbVar20;\n    bVar22 = *pbVar19 == *pbVar20;\n    pbVar19 = pbVar19 + (ulong)bVar23 * -2 + 1;\n    pbVar20 = pbVar20 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);" do (compound_statement "{\n    if (lVar15 == 0) break;\n    lVar15 = lVar15 + -1;\n    bVar21 = *pbVar19 < *pbVar20;\n    bVar22 = *pbVar19 == *pbVar20;\n    pbVar19 = pbVar19 + (ulong)bVar23 * -2 + 1;\n    pbVar20 = pbVar20 + (ulong)bVar23 * -2 + 1;\n  }" { (if_statement "if (lVar15 == 0) break;" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar15 = lVar15 + -1;" (assignment_expression "lVar15 = lVar15 + -1" identifier = (binary_expression "lVar15 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar19 < *pbVar20;" (assignment_expression "bVar21 = *pbVar19 < *pbVar20" identifier = (binary_expression "*pbVar19 < *pbVar20" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar19 == *pbVar20;" (assignment_expression "bVar22 = *pbVar19 == *pbVar20" identifier = (binary_expression "*pbVar19 == *pbVar20" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar23 * -2" identifier + (binary_expression "(ulong)bVar23 * -2" (cast_expression "(ulong)bVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar20 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar20 + (ulong)bVar23 * -2" identifier + (binary_expression "(ulong)bVar23 * -2" (cast_expression "(ulong)bVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar21 && !bVar22) == bVar21) {\n    local_a0 = 1;\n    uVar8 = uVar8 | 0x30;\n  }\n  else {\n    local_a0 = (uint64_t)pSVar16->sh_entsize;\n  }" if (parenthesized_expression "((!bVar21 && !bVar22) == bVar21)" ( (binary_expression "(!bVar21 && !bVar22) == bVar21" (parenthesized_expression "(!bVar21 && !bVar22)" ( (binary_expression "!bVar21 && !bVar22" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier) )) (compound_statement "{\n    local_a0 = 1;\n    uVar8 = uVar8 | 0x30;\n  }" { (expression_statement "local_a0 = 1;" (assignment_expression "local_a0 = 1" identifier = number_literal) ;) (expression_statement "uVar8 = uVar8 | 0x30;" (assignment_expression "uVar8 = uVar8 | 0x30" identifier = (binary_expression "uVar8 | 0x30" identifier | number_literal)) ;) }) (else_clause "else {\n    local_a0 = (uint64_t)pSVar16->sh_entsize;\n  }" else (compound_statement "{\n    local_a0 = (uint64_t)pSVar16->sh_entsize;\n  }" { (expression_statement "local_a0 = (uint64_t)pSVar16->sh_entsize;" (assignment_expression "local_a0 = (uint64_t)pSVar16->sh_entsize" identifier = (cast_expression "(uint64_t)pSVar16->sh_entsize" ( (type_descriptor "uint64_t" primitive_type) ) (field_expression "pSVar16->sh_entsize" identifier -> field_identifier))) ;) }))) (expression_statement "this_01 = this;" (assignment_expression "this_01 = this" identifier = identifier) ;) (expression_statement "update_flags_for_input_section(this,(ulong)uVar8);" (call_expression "update_flags_for_input_section(this,(ulong)uVar8)" identifier (argument_list "(this,(ulong)uVar8)" ( identifier , (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if ((this->field_0xca & 2) == 0) {\n    set_entsize(this_01,local_a0);\n  }" if (parenthesized_expression "((this->field_0xca & 2) == 0)" ( (binary_expression "(this->field_0xca & 2) == 0" (parenthesized_expression "(this->field_0xca & 2)" ( (binary_expression "this->field_0xca & 2" (field_expression "this->field_0xca" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    set_entsize(this_01,local_a0);\n  }" { (expression_statement "set_entsize(this_01,local_a0);" (call_expression "set_entsize(this_01,local_a0)" identifier (argument_list "(this_01,local_a0)" ( identifier , identifier ))) ;) })) (if_statement "if (((((uVar8 & 0x10) != 0) && (reloc_shndx == 0)) && (shdr->p_->sh_size != 0)) &&\n     (bVar21 = Parameters::incremental(parameters), !bVar21)) {\n    if (((this->field_0xca & 0x10) != 0) || (have_sections_script)) {\n      keeps_input_sections = true;\n    }\n    else {\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if ((parameters->options_ == (General_options *)0x0) ||\n         (keeps_input_sections = true, (parameters->debug_ & 8) == 0)) {\n        if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n          keeps_input_sections = Target::do_may_relax(pTVar5);\n        }\n        else {\n          keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();\n        }\n      }\n    }\n    bVar21 = add_merge_input_section\n                       (this,(Relobj *)object,shndx,(ulong)uVar8,local_a0,addralign,\n                        (bool)keeps_input_sections);\n    if (bVar21) {\n      return -1;\n    }\n  }" if (parenthesized_expression "(((((uVar8 & 0x10) != 0) && (reloc_shndx == 0)) && (shdr->p_->sh_size != 0)) &&\n     (bVar21 = Parameters::incremental(parameters), !bVar21))" ( (binary_expression "((((uVar8 & 0x10) != 0) && (reloc_shndx == 0)) && (shdr->p_->sh_size != 0)) &&\n     (bVar21 = Parameters::incremental(parameters), !bVar21)" (parenthesized_expression "((((uVar8 & 0x10) != 0) && (reloc_shndx == 0)) && (shdr->p_->sh_size != 0))" ( (binary_expression "(((uVar8 & 0x10) != 0) && (reloc_shndx == 0)) && (shdr->p_->sh_size != 0)" (parenthesized_expression "(((uVar8 & 0x10) != 0) && (reloc_shndx == 0))" ( (binary_expression "((uVar8 & 0x10) != 0) && (reloc_shndx == 0)" (parenthesized_expression "((uVar8 & 0x10) != 0)" ( (binary_expression "(uVar8 & 0x10) != 0" (parenthesized_expression "(uVar8 & 0x10)" ( (binary_expression "uVar8 & 0x10" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(reloc_shndx == 0)" ( (binary_expression "reloc_shndx == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(shdr->p_->sh_size != 0)" ( (binary_expression "shdr->p_->sh_size != 0" (field_expression "shdr->p_->sh_size" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier) != number_literal) ))) )) && (parenthesized_expression "(bVar21 = Parameters::incremental(parameters), !bVar21)" ( (ERROR "bVar21 = Parameters::" (assignment_expression "bVar21 = Parameters" identifier = identifier) : :) (comma_expression "incremental(parameters), !bVar21" (call_expression "incremental(parameters)" identifier (argument_list "(parameters)" ( identifier ))) , (unary_expression "!bVar21" ! identifier)) ))) )) (compound_statement "{\n    if (((this->field_0xca & 0x10) != 0) || (have_sections_script)) {\n      keeps_input_sections = true;\n    }\n    else {\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if ((parameters->options_ == (General_options *)0x0) ||\n         (keeps_input_sections = true, (parameters->debug_ & 8) == 0)) {\n        if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n          keeps_input_sections = Target::do_may_relax(pTVar5);\n        }\n        else {\n          keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();\n        }\n      }\n    }\n    bVar21 = add_merge_input_section\n                       (this,(Relobj *)object,shndx,(ulong)uVar8,local_a0,addralign,\n                        (bool)keeps_input_sections);\n    if (bVar21) {\n      return -1;\n    }\n  }" { (if_statement "if (((this->field_0xca & 0x10) != 0) || (have_sections_script)) {\n      keeps_input_sections = true;\n    }\n    else {\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if ((parameters->options_ == (General_options *)0x0) ||\n         (keeps_input_sections = true, (parameters->debug_ & 8) == 0)) {\n        if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n          keeps_input_sections = Target::do_may_relax(pTVar5);\n        }\n        else {\n          keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();\n        }\n      }\n    }" if (parenthesized_expression "(((this->field_0xca & 0x10) != 0) || (have_sections_script))" ( (binary_expression "((this->field_0xca & 0x10) != 0) || (have_sections_script)" (parenthesized_expression "((this->field_0xca & 0x10) != 0)" ( (binary_expression "(this->field_0xca & 0x10) != 0" (parenthesized_expression "(this->field_0xca & 0x10)" ( (binary_expression "this->field_0xca & 0x10" (field_expression "this->field_0xca" identifier -> field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(have_sections_script)" ( identifier ))) )) (compound_statement "{\n      keeps_input_sections = true;\n    }" { (expression_statement "keeps_input_sections = true;" (assignment_expression "keeps_input_sections = true" identifier = true) ;) }) (else_clause "else {\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if ((parameters->options_ == (General_options *)0x0) ||\n         (keeps_input_sections = true, (parameters->debug_ & 8) == 0)) {\n        if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n          keeps_input_sections = Target::do_may_relax(pTVar5);\n        }\n        else {\n          keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();\n        }\n      }\n    }" else (compound_statement "{\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if ((parameters->options_ == (General_options *)0x0) ||\n         (keeps_input_sections = true, (parameters->debug_ & 8) == 0)) {\n        if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n          keeps_input_sections = Target::do_may_relax(pTVar5);\n        }\n        else {\n          keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();\n        }\n      }\n    }" { (expression_statement "pTVar5 = parameters->target_;" (assignment_expression "pTVar5 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar5 == (Target *)0x0) goto LAB_00227090;" if (parenthesized_expression "(pTVar5 == (Target *)0x0)" ( (binary_expression "pTVar5 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00227090;" goto statement_identifier ;)) (if_statement "if ((parameters->options_ == (General_options *)0x0) ||\n         (keeps_input_sections = true, (parameters->debug_ & 8) == 0)) {\n        if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n          keeps_input_sections = Target::do_may_relax(pTVar5);\n        }\n        else {\n          keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();\n        }\n      }" if (parenthesized_expression "((parameters->options_ == (General_options *)0x0) ||\n         (keeps_input_sections = true, (parameters->debug_ & 8) == 0))" ( (binary_expression "(parameters->options_ == (General_options *)0x0) ||\n         (keeps_input_sections = true, (parameters->debug_ & 8) == 0)" (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)) )) || (parenthesized_expression "(keeps_input_sections = true, (parameters->debug_ & 8) == 0)" ( (comma_expression "keeps_input_sections = true, (parameters->debug_ & 8) == 0" (assignment_expression "keeps_input_sections = true" identifier = true) , (binary_expression "(parameters->debug_ & 8) == 0" (parenthesized_expression "(parameters->debug_ & 8)" ( (binary_expression "parameters->debug_ & 8" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n        if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n          keeps_input_sections = Target::do_may_relax(pTVar5);\n        }\n        else {\n          keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();\n        }\n      }" { (if_statement "if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n          keeps_input_sections = Target::do_may_relax(pTVar5);\n        }\n        else {\n          keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();\n        }" if (parenthesized_expression "(*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax)" ( (binary_expression "*(code **)(*(long *)pTVar5 + 0xe0) == Target" (pointer_expression "*(code **)(*(long *)pTVar5 + 0xe0)" * (cast_expression "(code **)(*(long *)pTVar5 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar5 + 0xe0)" ( (binary_expression "*(long *)pTVar5 + 0xe0" (pointer_expression "*(long *)pTVar5" * (cast_expression "(long *)pTVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) (ERROR "::do_may_relax" : : identifier) )) (compound_statement "{\n          keeps_input_sections = Target::do_may_relax(pTVar5);\n        }" { (ERROR "keeps_input_sections = Target::" (assignment_expression "keeps_input_sections = Target" identifier = identifier) : :) (expression_statement "do_may_relax(pTVar5);" (call_expression "do_may_relax(pTVar5)" identifier (argument_list "(pTVar5)" ( identifier ))) ;) }) (else_clause "else {\n          keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();\n        }" else (compound_statement "{\n          keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();\n        }" { (expression_statement "keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))();" (assignment_expression "keeps_input_sections = (**(code **)(*(long *)pTVar5 + 0xe0))()" identifier = (call_expression "(**(code **)(*(long *)pTVar5 + 0xe0))()" (parenthesized_expression "(**(code **)(*(long *)pTVar5 + 0xe0))" ( (pointer_expression "**(code **)(*(long *)pTVar5 + 0xe0)" * (pointer_expression "*(code **)(*(long *)pTVar5 + 0xe0)" * (cast_expression "(code **)(*(long *)pTVar5 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar5 + 0xe0)" ( (binary_expression "*(long *)pTVar5 + 0xe0" (pointer_expression "*(long *)pTVar5" * (cast_expression "(long *)pTVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) })) }))) (expression_statement "bVar21 = add_merge_input_section\n                       (this,(Relobj *)object,shndx,(ulong)uVar8,local_a0,addralign,\n                        (bool)keeps_input_sections);" (assignment_expression "bVar21 = add_merge_input_section\n                       (this,(Relobj *)object,shndx,(ulong)uVar8,local_a0,addralign,\n                        (bool)keeps_input_sections)" identifier = (call_expression "add_merge_input_section\n                       (this,(Relobj *)object,shndx,(ulong)uVar8,local_a0,addralign,\n                        (bool)keeps_input_sections)" identifier (argument_list "(this,(Relobj *)object,shndx,(ulong)uVar8,local_a0,addralign,\n                        (bool)keeps_input_sections)" ( identifier , (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier , identifier , (cast_expression "(bool)keeps_input_sections" ( (type_descriptor "bool" primitive_type) ) identifier) )))) ;) (if_statement "if (bVar21) {\n      return -1;\n    }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n      return -1;\n    }" { (return_statement "return -1;" return number_literal ;) })) })) (expression_statement "bVar23 = this->field_0xca;" (assignment_expression "bVar23 = this->field_0xca" identifier = (field_expression "this->field_0xca" identifier -> field_identifier)) ;) (if_statement "if ((bVar23 & 0x20) != 0) {\n    oVar11 = Free_list::allocate(&this->free_list_,len,addralign,0);\n    if (oVar11 != -1) {\n      return oVar11;\n    }\n    pcVar10 = this->name_;\n    format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");\n                    /* WARNING: Subroutine does not return */\n    gold_fallback(format,pcVar10);\n  }" if (parenthesized_expression "((bVar23 & 0x20) != 0)" ( (binary_expression "(bVar23 & 0x20) != 0" (parenthesized_expression "(bVar23 & 0x20)" ( (binary_expression "bVar23 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    oVar11 = Free_list::allocate(&this->free_list_,len,addralign,0);\n    if (oVar11 != -1) {\n      return oVar11;\n    }\n    pcVar10 = this->name_;\n    format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");\n                    /* WARNING: Subroutine does not return */\n    gold_fallback(format,pcVar10);\n  }" { (ERROR "oVar11 = Free_list::" (assignment_expression "oVar11 = Free_list" identifier = identifier) : :) (expression_statement "allocate(&this->free_list_,len,addralign,0);" (call_expression "allocate(&this->free_list_,len,addralign,0)" identifier (argument_list "(&this->free_list_,len,addralign,0)" ( (pointer_expression "&this->free_list_" & (field_expression "this->free_list_" identifier -> field_identifier)) , identifier , identifier , number_literal ))) ;) (if_statement "if (oVar11 != -1) {\n      return oVar11;\n    }" if (parenthesized_expression "(oVar11 != -1)" ( (binary_expression "oVar11 != -1" identifier != number_literal) )) (compound_statement "{\n      return oVar11;\n    }" { (return_statement "return oVar11;" return identifier ;) })) (expression_statement "pcVar10 = this->name_;" (assignment_expression "pcVar10 = this->name_" identifier = (field_expression "this->name_" identifier -> field_identifier)) ;) (expression_statement "format = (char *)gettext("out of patch space in section %s; relink with --incremental-full");" (assignment_expression "format = (char *)gettext("out of patch space in section %s; relink with --incremental-full")" identifier = (cast_expression "(char *)gettext("out of patch space in section %s; relink with --incremental-full")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("out of patch space in section %s; relink with --incremental-full")" identifier (argument_list "("out of patch space in section %s; relink with --incremental-full")" ( (string_literal ""out of patch space in section %s; relink with --incremental-full"" " string_content ") ))))) ;) comment (expression_statement "gold_fallback(format,pcVar10);" (call_expression "gold_fallback(format,pcVar10)" identifier (argument_list "(format,pcVar10)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar12 = (pointer)(this->super_Output_data).data_size_;" (assignment_expression "pcVar12 = (pointer)(this->super_Output_data).data_size_" identifier = (field_expression "(pointer)(this->super_Output_data).data_size_" (call_expression "(pointer)(this->super_Output_data)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "pcVar9 = pcVar12;" (assignment_expression "pcVar9 = pcVar12" identifier = identifier) ;) (if_statement "if (addralign != 0) {\n    pcVar9 = (pointer)((ulong)(pcVar12 + (addralign - 1)) & -addralign);\n  }" if (parenthesized_expression "(addralign != 0)" ( (binary_expression "addralign != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar9 = (pointer)((ulong)(pcVar12 + (addralign - 1)) & -addralign);\n  }" { (expression_statement "pcVar9 = (pointer)((ulong)(pcVar12 + (addralign - 1)) & -addralign);" (assignment_expression "pcVar9 = (pointer)((ulong)(pcVar12 + (addralign - 1)) & -addralign)" identifier = (call_expression "(pointer)((ulong)(pcVar12 + (addralign - 1)) & -addralign)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((ulong)(pcVar12 + (addralign - 1)) & -addralign)" ( (binary_expression "(ulong)(pcVar12 + (addralign - 1)) & -addralign" (call_expression "(ulong)(pcVar12 + (addralign - 1))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar12 + (addralign - 1))" ( (binary_expression "pcVar12 + (addralign - 1)" identifier + (parenthesized_expression "(addralign - 1)" ( (binary_expression "addralign - 1" identifier - number_literal) ))) ))) & (unary_expression "-addralign" - identifier)) )))) ;) })) (if_statement "if (((this->super_Output_data).field_0x20 & 2) != 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" if (parenthesized_expression "(((this->super_Output_data).field_0x20 & 2) != 0)" ( (binary_expression "((this->super_Output_data).field_0x20 & 2) != 0" (parenthesized_expression "((this->super_Output_data).field_0x20 & 2)" ( (binary_expression "(this->super_Output_data).field_0x20 & 2" (field_expression "(this->super_Output_data).field_0x20" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "do_gold_unreachable("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })) (expression_statement "(this->super_Output_data).data_size_ = (off_t)(pcVar9 + len);" (assignment_expression "(this->super_Output_data).data_size_ = (off_t)(pcVar9 + len)" (field_expression "(this->super_Output_data).data_size_" (parenthesized_expression "(this->super_Output_data)" ( (field_expression "this->super_Output_data" identifier -> field_identifier) )) . field_identifier) = (call_expression "(off_t)(pcVar9 + len)" (parenthesized_expression "(off_t)" ( identifier )) (argument_list "(pcVar9 + len)" ( (binary_expression "pcVar9 + len" identifier + identifier) )))) ;) (if_statement "if (((bVar23 & 1) != 0) || (have_sections_script)) {\nLAB_00226a9c:\n    if (((long)pcVar9 <= (long)pcVar12) || ((bVar23 & 1) != 0)) goto LAB_00226aaa;\n    if (!have_sections_script) {\n      if ((uVar8 & 4) != 0) {\nLAB_00226d8d:\n        pTVar5 = parameters->target_;\n        if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n        if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) != '\0') {\n          local_58._8_8_ = (long)pcVar9 - (long)pcVar12;\n          if ((this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start) {\n            local_58._0_8_ = pcVar12;\n            std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);\n            bVar23 = this->field_0xca;\n          }\n          else {\n            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n            this_00 = (Output_data_const *)operator_new(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n            Output_data_const::Output_data_const(this_00,&fill_data,1);\n            local_58._24_4_ = 0;\n            local_58._0_8_ = (pointer)0xffffffff;\n            local_58._8_8_ = 0;\n            local_58._16_8_ = this_00;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }\n            bVar23 = this->field_0xca;\n          }\n        }\n      }\nLAB_00226e42:\n      if ((bVar23 & 0x10) != 0) goto LAB_00226aba;\n      goto LAB_00226e4b;\n    }\n  }\n  else {\n    if ((uVar8 & 4) == 0) {\n      if ((long)pcVar12 < (long)pcVar9) goto LAB_00226e42;\n    }\n    else {\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) == '\0') {\n        if ((long)pcVar12 < (long)pcVar9) goto LAB_00226d8d;\n      }\n      else {\n        if ((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)) {\n          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }\n          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }\n        }\n        if ((this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_start) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar23 = this->field_0xca | 1;\n        this->field_0xca = bVar23;\n      }\n    }\nLAB_00226aaa:\n    if (((bVar23 & 0x10) == 0) && (!have_sections_script)) {\nLAB_00226e4b:\n      if (((this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_00227060;\n        if ((parameters->options_->Map_).user_set_via_option == false) {\n          pTVar5 = parameters->target_;\n          if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }\n          if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(((bVar23 & 1) != 0) || (have_sections_script))" ( (binary_expression "((bVar23 & 1) != 0) || (have_sections_script)" (parenthesized_expression "((bVar23 & 1) != 0)" ( (binary_expression "(bVar23 & 1) != 0" (parenthesized_expression "(bVar23 & 1)" ( (binary_expression "bVar23 & 1" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(have_sections_script)" ( identifier ))) )) (compound_statement "{\nLAB_00226a9c:\n    if (((long)pcVar9 <= (long)pcVar12) || ((bVar23 & 1) != 0)) goto LAB_00226aaa;\n    if (!have_sections_script) {\n      if ((uVar8 & 4) != 0) {\nLAB_00226d8d:\n        pTVar5 = parameters->target_;\n        if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n        if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) != '\0') {\n          local_58._8_8_ = (long)pcVar9 - (long)pcVar12;\n          if ((this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start) {\n            local_58._0_8_ = pcVar12;\n            std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);\n            bVar23 = this->field_0xca;\n          }\n          else {\n            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n            this_00 = (Output_data_const *)operator_new(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n            Output_data_const::Output_data_const(this_00,&fill_data,1);\n            local_58._24_4_ = 0;\n            local_58._0_8_ = (pointer)0xffffffff;\n            local_58._8_8_ = 0;\n            local_58._16_8_ = this_00;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }\n            bVar23 = this->field_0xca;\n          }\n        }\n      }\nLAB_00226e42:\n      if ((bVar23 & 0x10) != 0) goto LAB_00226aba;\n      goto LAB_00226e4b;\n    }\n  }" { (labeled_statement "LAB_00226a9c:\n    if (((long)pcVar9 <= (long)pcVar12) || ((bVar23 & 1) != 0)) goto LAB_00226aaa;" statement_identifier : (if_statement "if (((long)pcVar9 <= (long)pcVar12) || ((bVar23 & 1) != 0)) goto LAB_00226aaa;" if (parenthesized_expression "(((long)pcVar9 <= (long)pcVar12) || ((bVar23 & 1) != 0))" ( (binary_expression "((long)pcVar9 <= (long)pcVar12) || ((bVar23 & 1) != 0)" (parenthesized_expression "((long)pcVar9 <= (long)pcVar12)" ( (binary_expression "(long)pcVar9 <= (long)pcVar12" (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) <= (cast_expression "(long)pcVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) || (parenthesized_expression "((bVar23 & 1) != 0)" ( (binary_expression "(bVar23 & 1) != 0" (parenthesized_expression "(bVar23 & 1)" ( (binary_expression "bVar23 & 1" identifier & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00226aaa;" goto statement_identifier ;))) (if_statement "if (!have_sections_script) {\n      if ((uVar8 & 4) != 0) {\nLAB_00226d8d:\n        pTVar5 = parameters->target_;\n        if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n        if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) != '\0') {\n          local_58._8_8_ = (long)pcVar9 - (long)pcVar12;\n          if ((this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start) {\n            local_58._0_8_ = pcVar12;\n            std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);\n            bVar23 = this->field_0xca;\n          }\n          else {\n            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n            this_00 = (Output_data_const *)operator_new(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n            Output_data_const::Output_data_const(this_00,&fill_data,1);\n            local_58._24_4_ = 0;\n            local_58._0_8_ = (pointer)0xffffffff;\n            local_58._8_8_ = 0;\n            local_58._16_8_ = this_00;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }\n            bVar23 = this->field_0xca;\n          }\n        }\n      }\nLAB_00226e42:\n      if ((bVar23 & 0x10) != 0) goto LAB_00226aba;\n      goto LAB_00226e4b;\n    }" if (parenthesized_expression "(!have_sections_script)" ( (unary_expression "!have_sections_script" ! identifier) )) (compound_statement "{\n      if ((uVar8 & 4) != 0) {\nLAB_00226d8d:\n        pTVar5 = parameters->target_;\n        if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n        if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) != '\0') {\n          local_58._8_8_ = (long)pcVar9 - (long)pcVar12;\n          if ((this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start) {\n            local_58._0_8_ = pcVar12;\n            std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);\n            bVar23 = this->field_0xca;\n          }\n          else {\n            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n            this_00 = (Output_data_const *)operator_new(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n            Output_data_const::Output_data_const(this_00,&fill_data,1);\n            local_58._24_4_ = 0;\n            local_58._0_8_ = (pointer)0xffffffff;\n            local_58._8_8_ = 0;\n            local_58._16_8_ = this_00;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }\n            bVar23 = this->field_0xca;\n          }\n        }\n      }\nLAB_00226e42:\n      if ((bVar23 & 0x10) != 0) goto LAB_00226aba;\n      goto LAB_00226e4b;\n    }" { (if_statement "if ((uVar8 & 4) != 0) {\nLAB_00226d8d:\n        pTVar5 = parameters->target_;\n        if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n        if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) != '\0') {\n          local_58._8_8_ = (long)pcVar9 - (long)pcVar12;\n          if ((this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start) {\n            local_58._0_8_ = pcVar12;\n            std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);\n            bVar23 = this->field_0xca;\n          }\n          else {\n            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n            this_00 = (Output_data_const *)operator_new(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n            Output_data_const::Output_data_const(this_00,&fill_data,1);\n            local_58._24_4_ = 0;\n            local_58._0_8_ = (pointer)0xffffffff;\n            local_58._8_8_ = 0;\n            local_58._16_8_ = this_00;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }\n            bVar23 = this->field_0xca;\n          }\n        }\n      }" if (parenthesized_expression "((uVar8 & 4) != 0)" ( (binary_expression "(uVar8 & 4) != 0" (parenthesized_expression "(uVar8 & 4)" ( (binary_expression "uVar8 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00226d8d:\n        pTVar5 = parameters->target_;\n        if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n        if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) != '\0') {\n          local_58._8_8_ = (long)pcVar9 - (long)pcVar12;\n          if ((this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start) {\n            local_58._0_8_ = pcVar12;\n            std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);\n            bVar23 = this->field_0xca;\n          }\n          else {\n            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n            this_00 = (Output_data_const *)operator_new(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n            Output_data_const::Output_data_const(this_00,&fill_data,1);\n            local_58._24_4_ = 0;\n            local_58._0_8_ = (pointer)0xffffffff;\n            local_58._8_8_ = 0;\n            local_58._16_8_ = this_00;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }\n            bVar23 = this->field_0xca;\n          }\n        }\n      }" { (labeled_statement "LAB_00226d8d:\n        pTVar5 = parameters->target_;" statement_identifier : (expression_statement "pTVar5 = parameters->target_;" (assignment_expression "pTVar5 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;)) (if_statement "if (pTVar5 == (Target *)0x0) goto LAB_00227090;" if (parenthesized_expression "(pTVar5 == (Target *)0x0)" ( (binary_expression "pTVar5 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00227090;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) != '\0') {\n          local_58._8_8_ = (long)pcVar9 - (long)pcVar12;\n          if ((this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start) {\n            local_58._0_8_ = pcVar12;\n            std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);\n            bVar23 = this->field_0xca;\n          }\n          else {\n            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n            this_00 = (Output_data_const *)operator_new(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n            Output_data_const::Output_data_const(this_00,&fill_data,1);\n            local_58._24_4_ = 0;\n            local_58._0_8_ = (pointer)0xffffffff;\n            local_58._8_8_ = 0;\n            local_58._16_8_ = this_00;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }\n            bVar23 = this->field_0xca;\n          }\n        }" if (parenthesized_expression "(*(char *)(*(long *)(pTVar5 + 8) + 0xe) != '\0')" ( (binary_expression "*(char *)(*(long *)(pTVar5 + 8) + 0xe) != '\0'" (pointer_expression "*(char *)(*(long *)(pTVar5 + 8) + 0xe)" * (cast_expression "(char *)(*(long *)(pTVar5 + 8) + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(pTVar5 + 8) + 0xe)" ( (binary_expression "*(long *)(pTVar5 + 8) + 0xe" (pointer_expression "*(long *)(pTVar5 + 8)" * (cast_expression "(long *)(pTVar5 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 8)" ( (binary_expression "pTVar5 + 8" identifier + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_58._8_8_ = (long)pcVar9 - (long)pcVar12;\n          if ((this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start) {\n            local_58._0_8_ = pcVar12;\n            std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);\n            bVar23 = this->field_0xca;\n          }\n          else {\n            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n            this_00 = (Output_data_const *)operator_new(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n            Output_data_const::Output_data_const(this_00,&fill_data,1);\n            local_58._24_4_ = 0;\n            local_58._0_8_ = (pointer)0xffffffff;\n            local_58._8_8_ = 0;\n            local_58._16_8_ = this_00;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }\n            bVar23 = this->field_0xca;\n          }\n        }" { (expression_statement "local_58._8_8_ = (long)pcVar9 - (long)pcVar12;" (assignment_expression "local_58._8_8_ = (long)pcVar9 - (long)pcVar12" (field_expression "local_58._8_8_" identifier . field_identifier) = (binary_expression "(long)pcVar9 - (long)pcVar12" (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start) {\n            local_58._0_8_ = pcVar12;\n            std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);\n            bVar23 = this->field_0xca;\n          }\n          else {\n            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n            this_00 = (Output_data_const *)operator_new(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n            Output_data_const::Output_data_const(this_00,&fill_data,1);\n            local_58._24_4_ = 0;\n            local_58._0_8_ = (pointer)0xffffffff;\n            local_58._8_8_ = 0;\n            local_58._16_8_ = this_00;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }\n            bVar23 = this->field_0xca;\n          }" if (parenthesized_expression "((this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_start)" ( (ERROR "(this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "(this->input_sections_).\n              super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "(this->input_sections_).\n              super__Vector_base<gold" (field_expression "(this->input_sections_).\n              super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : : (binary_expression "Input_section>_>\n              ._M_impl._M_finish ==\n              (this->input_sections_).\n              super__Vector_base<gold" (field_expression "Input_section>_>\n              ._M_impl._M_finish" (field_expression "Input_section>_>\n              ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) == (binary_expression "(this->input_sections_).\n              super__Vector_base<gold" (field_expression "(this->input_sections_).\n              super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : identifier : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Input_section>_>\n              ._M_impl._M_start" (field_expression "Input_section>_>\n              ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n            local_58._0_8_ = pcVar12;\n            std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);\n            bVar23 = this->field_0xca;\n          }" { (expression_statement "local_58._0_8_ = pcVar12;" (assignment_expression "local_58._0_8_ = pcVar12" (field_expression "local_58._0_8_" identifier . field_identifier) = identifier) ;) (labeled_statement "std::vector<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);" statement_identifier (ERROR "::vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);" statement_identifier (ERROR "::Fill,_std::allocator<gold:" : : (comma_expression "Fill,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Fill>_>::\n            emplace_back<gold::Output_section::Fill>(&this->fills_,(Fill *)local_58);" statement_identifier (ERROR "::Fill>_>::\n            emplace_back<gold:" : : (binary_expression "Fill>_" identifier > identifier) > : : (binary_expression "emplace_back<gold" identifier < identifier) :) : (labeled_statement "Output_section::Fill>(&this->fills_,(Fill *)local_58);" statement_identifier : (ERROR ":" :) (expression_statement "Fill>(&this->fills_,(Fill *)local_58);" (binary_expression "Fill>(&this->fills_,(Fill *)local_58)" identifier > (parenthesized_expression "(&this->fills_,(Fill *)local_58)" ( (comma_expression "&this->fills_,(Fill *)local_58" (pointer_expression "&this->fills_" & (field_expression "this->fills_" identifier -> field_identifier)) , (cast_expression "(Fill *)local_58" ( (type_descriptor "Fill *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;))))) (expression_statement "bVar23 = this->field_0xca;" (assignment_expression "bVar23 = this->field_0xca" identifier = (field_expression "this->field_0xca" identifier -> field_identifier)) ;) }) (else_clause "else {\n            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n            this_00 = (Output_data_const *)operator_new(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n            Output_data_const::Output_data_const(this_00,&fill_data,1);\n            local_58._24_4_ = 0;\n            local_58._0_8_ = (pointer)0xffffffff;\n            local_58._8_8_ = 0;\n            local_58._16_8_ = this_00;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }\n            bVar23 = this->field_0xca;\n          }" else (compound_statement "{\n            (**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);\n                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */\n            this_00 = (Output_data_const *)operator_new(0x58);\n                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */\n            Output_data_const::Output_data_const(this_00,&fill_data,1);\n            local_58._24_4_ = 0;\n            local_58._0_8_ = (pointer)0xffffffff;\n            local_58._8_8_ = 0;\n            local_58._16_8_ = this_00;\n                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */\n            std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }\n            bVar23 = this->field_0xca;\n          }" { (expression_statement "(**(code **)(*(long *)pTVar5 + 0x30))(&fill_data);" (call_expression "(**(code **)(*(long *)pTVar5 + 0x30))(&fill_data)" (parenthesized_expression "(**(code **)(*(long *)pTVar5 + 0x30))" ( (pointer_expression "**(code **)(*(long *)pTVar5 + 0x30)" * (pointer_expression "*(code **)(*(long *)pTVar5 + 0x30)" * (cast_expression "(code **)(*(long *)pTVar5 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar5 + 0x30)" ( (binary_expression "*(long *)pTVar5 + 0x30" (pointer_expression "*(long *)pTVar5" * (cast_expression "(long *)pTVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(&fill_data)" ( (pointer_expression "&fill_data" & identifier) ))) ;) comment (expression_statement "this_00 = (Output_data_const *)operator_new(0x58);" (assignment_expression "this_00 = (Output_data_const *)operator_new(0x58)" identifier = (cast_expression "(Output_data_const *)operator_new(0x58)" ( (type_descriptor "Output_data_const *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x58)" identifier (argument_list "(0x58)" ( number_literal ))))) ;) comment (labeled_statement "Output_data_const::Output_data_const(this_00,&fill_data,1);" statement_identifier : (ERROR ":" :) (expression_statement "Output_data_const(this_00,&fill_data,1);" (call_expression "Output_data_const(this_00,&fill_data,1)" identifier (argument_list "(this_00,&fill_data,1)" ( identifier , (pointer_expression "&fill_data" & identifier) , number_literal ))) ;)) (expression_statement "local_58._24_4_ = 0;" (assignment_expression "local_58._24_4_ = 0" (field_expression "local_58._24_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_58._0_8_ = (pointer)0xffffffff;" (assignment_expression "local_58._0_8_ = (pointer)0xffffffff" (field_expression "local_58._0_8_" identifier . field_identifier) = (cast_expression "(pointer)0xffffffff" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "local_58._8_8_ = 0;" (assignment_expression "local_58._8_8_ = 0" (field_expression "local_58._8_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_58._16_8_ = this_00;" (assignment_expression "local_58._16_8_ = this_00" (field_expression "local_58._16_8_" identifier . field_identifier) = identifier) ;) comment (labeled_statement "std::\n            vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);" statement_identifier (ERROR "::\n            vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n            ::emplace_back<gold::Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);" statement_identifier (ERROR "::Input_section>_>\n            ::emplace_back<gold:" : : (binary_expression "Input_section>_" identifier > identifier) > : : (binary_expression "emplace_back<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>\n                      (&this->input_sections_,(Input_section *)local_58);" (binary_expression "Input_section>\n                      (&this->input_sections_,(Input_section *)local_58)" identifier > (parenthesized_expression "(&this->input_sections_,(Input_section *)local_58)" ( (comma_expression "&this->input_sections_,(Input_section *)local_58" (pointer_expression "&this->input_sections_" & (field_expression "this->input_sections_" identifier -> field_identifier)) , (cast_expression "(Input_section *)local_58" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;))))) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2) {\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) !=\n                &fill_data.field_2" (binary_expression "allocator<char>_>_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p)" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                 *)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p)" identifier * (ERROR ")" )) (call_expression "CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p)" identifier (argument_list "(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p)" ( (field_expression "fill_data._M_dataplus._M_p._4_4_" (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(uint)fill_data._M_dataplus._M_p" ( (type_descriptor "uint" type_identifier) ) (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier)) ))))) != (pointer_expression "&fill_data.field_2" & (field_expression "fill_data.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n              operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));\n            }" { (expression_statement "operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p));" (call_expression "operator_delete((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p))" identifier (argument_list "((undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p))" ( (cast_expression "(undefined1 *)\n                              CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p)" identifier (argument_list "(fill_data._M_dataplus._M_p._4_4_,\n                                       (uint)fill_data._M_dataplus._M_p)" ( (field_expression "fill_data._M_dataplus._M_p._4_4_" (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(uint)fill_data._M_dataplus._M_p" ( (type_descriptor "uint" type_identifier) ) (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier)) )))) ))) ;) })) (expression_statement "bVar23 = this->field_0xca;" (assignment_expression "bVar23 = this->field_0xca" identifier = (field_expression "this->field_0xca" identifier -> field_identifier)) ;) }))) })) })) (labeled_statement "LAB_00226e42:\n      if ((bVar23 & 0x10) != 0) goto LAB_00226aba;" statement_identifier : (if_statement "if ((bVar23 & 0x10) != 0) goto LAB_00226aba;" if (parenthesized_expression "((bVar23 & 0x10) != 0)" ( (binary_expression "(bVar23 & 0x10) != 0" (parenthesized_expression "(bVar23 & 0x10)" ( (binary_expression "bVar23 & 0x10" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00226aba;" goto statement_identifier ;))) (goto_statement "goto LAB_00226e4b;" goto statement_identifier ;) })) }) (else_clause "else {\n    if ((uVar8 & 4) == 0) {\n      if ((long)pcVar12 < (long)pcVar9) goto LAB_00226e42;\n    }\n    else {\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) == '\0') {\n        if ((long)pcVar12 < (long)pcVar9) goto LAB_00226d8d;\n      }\n      else {\n        if ((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)) {\n          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }\n          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }\n        }\n        if ((this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_start) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar23 = this->field_0xca | 1;\n        this->field_0xca = bVar23;\n      }\n    }\nLAB_00226aaa:\n    if (((bVar23 & 0x10) == 0) && (!have_sections_script)) {\nLAB_00226e4b:\n      if (((this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_00227060;\n        if ((parameters->options_->Map_).user_set_via_option == false) {\n          pTVar5 = parameters->target_;\n          if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }\n          if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    if ((uVar8 & 4) == 0) {\n      if ((long)pcVar12 < (long)pcVar9) goto LAB_00226e42;\n    }\n    else {\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) == '\0') {\n        if ((long)pcVar12 < (long)pcVar9) goto LAB_00226d8d;\n      }\n      else {\n        if ((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)) {\n          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }\n          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }\n        }\n        if ((this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_start) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar23 = this->field_0xca | 1;\n        this->field_0xca = bVar23;\n      }\n    }\nLAB_00226aaa:\n    if (((bVar23 & 0x10) == 0) && (!have_sections_script)) {\nLAB_00226e4b:\n      if (((this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_00227060;\n        if ((parameters->options_->Map_).user_set_via_option == false) {\n          pTVar5 = parameters->target_;\n          if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }\n          if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }\n        }\n      }\n    }\n  }" { (if_statement "if ((uVar8 & 4) == 0) {\n      if ((long)pcVar12 < (long)pcVar9) goto LAB_00226e42;\n    }\n    else {\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) == '\0') {\n        if ((long)pcVar12 < (long)pcVar9) goto LAB_00226d8d;\n      }\n      else {\n        if ((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)) {\n          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }\n          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }\n        }\n        if ((this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_start) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar23 = this->field_0xca | 1;\n        this->field_0xca = bVar23;\n      }\n    }" if (parenthesized_expression "((uVar8 & 4) == 0)" ( (binary_expression "(uVar8 & 4) == 0" (parenthesized_expression "(uVar8 & 4)" ( (binary_expression "uVar8 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((long)pcVar12 < (long)pcVar9) goto LAB_00226e42;\n    }" { (if_statement "if ((long)pcVar12 < (long)pcVar9) goto LAB_00226e42;" if (parenthesized_expression "((long)pcVar12 < (long)pcVar9)" ( (binary_expression "(long)pcVar12 < (long)pcVar9" (cast_expression "(long)pcVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_00226e42;" goto statement_identifier ;)) }) (else_clause "else {\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) == '\0') {\n        if ((long)pcVar12 < (long)pcVar9) goto LAB_00226d8d;\n      }\n      else {\n        if ((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)) {\n          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }\n          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }\n        }\n        if ((this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_start) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar23 = this->field_0xca | 1;\n        this->field_0xca = bVar23;\n      }\n    }" else (compound_statement "{\n      pTVar5 = parameters->target_;\n      if (pTVar5 == (Target *)0x0) goto LAB_00227090;\n      if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) == '\0') {\n        if ((long)pcVar12 < (long)pcVar9) goto LAB_00226d8d;\n      }\n      else {\n        if ((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)) {\n          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }\n          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }\n        }\n        if ((this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_start) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar23 = this->field_0xca | 1;\n        this->field_0xca = bVar23;\n      }\n    }" { (expression_statement "pTVar5 = parameters->target_;" (assignment_expression "pTVar5 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar5 == (Target *)0x0) goto LAB_00227090;" if (parenthesized_expression "(pTVar5 == (Target *)0x0)" ( (binary_expression "pTVar5 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00227090;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(long *)(pTVar5 + 8) + 0xe) == '\0') {\n        if ((long)pcVar12 < (long)pcVar9) goto LAB_00226d8d;\n      }\n      else {\n        if ((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)) {\n          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }\n          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }\n        }\n        if ((this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_start) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar23 = this->field_0xca | 1;\n        this->field_0xca = bVar23;\n      }" if (parenthesized_expression "(*(char *)(*(long *)(pTVar5 + 8) + 0xe) == '\0')" ( (binary_expression "*(char *)(*(long *)(pTVar5 + 8) + 0xe) == '\0'" (pointer_expression "*(char *)(*(long *)(pTVar5 + 8) + 0xe)" * (cast_expression "(char *)(*(long *)(pTVar5 + 8) + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(pTVar5 + 8) + 0xe)" ( (binary_expression "*(long *)(pTVar5 + 8) + 0xe" (pointer_expression "*(long *)(pTVar5 + 8)" * (cast_expression "(long *)(pTVar5 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 8)" ( (binary_expression "pTVar5 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if ((long)pcVar12 < (long)pcVar9) goto LAB_00226d8d;\n      }" { (if_statement "if ((long)pcVar12 < (long)pcVar9) goto LAB_00226d8d;" if (parenthesized_expression "((long)pcVar12 < (long)pcVar9)" ( (binary_expression "(long)pcVar12 < (long)pcVar9" (cast_expression "(long)pcVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_00226d8d;" goto statement_identifier ;)) }) (else_clause "else {\n        if ((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)) {\n          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }\n          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }\n        }\n        if ((this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_start) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar23 = this->field_0xca | 1;\n        this->field_0xca = bVar23;\n      }" else (compound_statement "{\n        if ((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)) {\n          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }\n          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }\n        }\n        if ((this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_start) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar23 = this->field_0xca | 1;\n        this->field_0xca = bVar23;\n      }" { (if_statement "if ((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)) {\n          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }\n          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }\n        }" if (parenthesized_expression "((parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0))" ( (binary_expression "(parameters->options_ == (General_options *)0x0) || ((parameters->debug_ & 8) == 0)" (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)) )) || (parenthesized_expression "((parameters->debug_ & 8) == 0)" ( (binary_expression "(parameters->debug_ & 8) == 0" (parenthesized_expression "(parameters->debug_ & 8)" ( (binary_expression "parameters->debug_ & 8" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }\n          if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }\n        }" { (if_statement "if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n            cVar7 = Target::do_may_relax(pTVar5);\n          }\n          else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }" if (parenthesized_expression "(*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax)" ( (binary_expression "*(code **)(*(long *)pTVar5 + 0xe0) == Target" (pointer_expression "*(code **)(*(long *)pTVar5 + 0xe0)" * (cast_expression "(code **)(*(long *)pTVar5 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar5 + 0xe0)" ( (binary_expression "*(long *)pTVar5 + 0xe0" (pointer_expression "*(long *)pTVar5" * (cast_expression "(long *)pTVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) (ERROR "::do_may_relax" : : identifier) )) (compound_statement "{\n            cVar7 = Target::do_may_relax(pTVar5);\n          }" { (ERROR "cVar7 = Target::" (assignment_expression "cVar7 = Target" identifier = identifier) : :) (expression_statement "do_may_relax(pTVar5);" (call_expression "do_may_relax(pTVar5)" identifier (argument_list "(pTVar5)" ( identifier ))) ;) }) (else_clause "else {\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }" else (compound_statement "{\n            cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n          }" { (expression_statement "cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();" (assignment_expression "cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))()" identifier = (call_expression "(**(code **)(*(long *)pTVar5 + 0xe0))()" (parenthesized_expression "(**(code **)(*(long *)pTVar5 + 0xe0))" ( (pointer_expression "**(code **)(*(long *)pTVar5 + 0xe0)" * (pointer_expression "*(code **)(*(long *)pTVar5 + 0xe0)" * (cast_expression "(code **)(*(long *)pTVar5 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar5 + 0xe0)" ( (binary_expression "*(long *)pTVar5 + 0xe0" (pointer_expression "*(long *)pTVar5" * (cast_expression "(long *)pTVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }" if (parenthesized_expression "((cVar7 == '\0') && (layout->section_ordering_specified_ == false))" ( (binary_expression "(cVar7 == '\0') && (layout->section_ordering_specified_ == false)" (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(layout->section_ordering_specified_ == false)" ( (binary_expression "layout->section_ordering_specified_ == false" (field_expression "layout->section_ordering_specified_" identifier -> field_identifier) == false) ))) )) (compound_statement "{\n            bVar23 = this->field_0xca;\n            goto LAB_00226a9c;\n          }" { (expression_statement "bVar23 = this->field_0xca;" (assignment_expression "bVar23 = this->field_0xca" identifier = (field_expression "this->field_0xca" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00226a9c;" goto statement_identifier ;) })) })) (if_statement "if ((this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_start) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");\n        }" if (parenthesized_expression "((this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_start)" ( (ERROR "(this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std::allocator<gold::Output_section::" (comma_expression "(this->fills_).\n            super__Vector_base<gold::Output_section::Fill,_std" (binary_expression "(this->fills_).\n            super__Vector_base<gold" (field_expression "(this->fills_).\n            super__Vector_base" (parenthesized_expression "(this->fills_)" ( (field_expression "this->fills_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section::Fill" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : : (binary_expression "Fill>_>\n            ._M_impl._M_finish !=\n            (this->fills_).\n            super__Vector_base<gold" (field_expression "Fill>_>\n            ._M_impl._M_finish" (field_expression "Fill>_>\n            ._M_impl" (binary_expression "Fill>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != (binary_expression "(this->fills_).\n            super__Vector_base<gold" (field_expression "(this->fills_).\n            super__Vector_base" (parenthesized_expression "(this->fills_)" ( (field_expression "this->fills_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : identifier : : (comma_expression "Fill,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Fill>_>\n            ._M_impl._M_start" (field_expression "Fill>_>\n            ._M_impl" (binary_expression "Fill>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section");" (call_expression "do_gold_unreachable("../../gold/output.cc",0x9eb,"add_input_section")" identifier (argument_list "("../../gold/output.cc",0x9eb,"add_input_section")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""add_input_section"" " string_content ") ))) ;) })) (expression_statement "bVar23 = this->field_0xca | 1;" (assignment_expression "bVar23 = this->field_0xca | 1" identifier = (binary_expression "this->field_0xca | 1" (field_expression "this->field_0xca" identifier -> field_identifier) | number_literal)) ;) (expression_statement "this->field_0xca = bVar23;" (assignment_expression "this->field_0xca = bVar23" (field_expression "this->field_0xca" identifier -> field_identifier) = identifier) ;) }))) }))) (labeled_statement "LAB_00226aaa:\n    if (((bVar23 & 0x10) == 0) && (!have_sections_script)) {\nLAB_00226e4b:\n      if (((this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_00227060;\n        if ((parameters->options_->Map_).user_set_via_option == false) {\n          pTVar5 = parameters->target_;\n          if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }\n          if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }\n        }\n      }\n    }" statement_identifier : (if_statement "if (((bVar23 & 0x10) == 0) && (!have_sections_script)) {\nLAB_00226e4b:\n      if (((this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_00227060;\n        if ((parameters->options_->Map_).user_set_via_option == false) {\n          pTVar5 = parameters->target_;\n          if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }\n          if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(((bVar23 & 0x10) == 0) && (!have_sections_script))" ( (binary_expression "((bVar23 & 0x10) == 0) && (!have_sections_script)" (parenthesized_expression "((bVar23 & 0x10) == 0)" ( (binary_expression "(bVar23 & 0x10) == 0" (parenthesized_expression "(bVar23 & 0x10)" ( (binary_expression "bVar23 & 0x10" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(!have_sections_script)" ( (unary_expression "!have_sections_script" ! identifier) ))) )) (compound_statement "{\nLAB_00226e4b:\n      if (((this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_00227060;\n        if ((parameters->options_->Map_).user_set_via_option == false) {\n          pTVar5 = parameters->target_;\n          if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }\n          if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }\n        }\n      }\n    }" { (labeled_statement "LAB_00226e4b:\n      if (((this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_00227060;\n        if ((parameters->options_->Map_).user_set_via_option == false) {\n          pTVar5 = parameters->target_;\n          if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }\n          if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }\n        }\n      }" statement_identifier : (if_statement "if (((this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))) {\n        if (parameters->options_ == (General_options *)0x0) goto LAB_00227060;\n        if ((parameters->options_->Map_).user_set_via_option == false) {\n          pTVar5 = parameters->target_;\n          if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }\n          if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(((this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0))))" ( (binary_expression "((this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))" (parenthesized_expression "((this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_start)" ( (ERROR "(this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "(this->input_sections_).\n           super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "(this->input_sections_).\n           super__Vector_base<gold" (field_expression "(this->input_sections_).\n           super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : : (binary_expression "Input_section>_>\n           ._M_impl._M_finish ==\n           (this->input_sections_).\n           super__Vector_base<gold" (field_expression "Input_section>_>\n           ._M_impl._M_finish" (field_expression "Input_section>_>\n           ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) == (binary_expression "(this->input_sections_).\n           super__Vector_base<gold" (field_expression "(this->input_sections_).\n           super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : identifier : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Input_section>_>\n           ._M_impl._M_start" (field_expression "Input_section>_>\n           ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) && (parenthesized_expression "(((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))" ( (parenthesized_expression "((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0))" ( (binary_expression "(this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)" (binary_expression "(this->field_0xc9 & 4) == 0" (parenthesized_expression "(this->field_0xc9 & 4)" ( (binary_expression "this->field_0xc9 & 4" (field_expression "this->field_0xc9" identifier -> field_identifier) & number_literal) )) == number_literal) && (parenthesized_expression "((this->field_0xc9 & 8) == 0)" ( (binary_expression "(this->field_0xc9 & 8) == 0" (parenthesized_expression "(this->field_0xc9 & 8)" ( (binary_expression "this->field_0xc9 & 8" (field_expression "this->field_0xc9" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n        if (parameters->options_ == (General_options *)0x0) goto LAB_00227060;\n        if ((parameters->options_->Map_).user_set_via_option == false) {\n          pTVar5 = parameters->target_;\n          if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }\n          if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }\n        }\n      }" { (if_statement "if (parameters->options_ == (General_options *)0x0) goto LAB_00227060;" 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)) )) (goto_statement "goto LAB_00227060;" goto statement_identifier ;)) (if_statement "if ((parameters->options_->Map_).user_set_via_option == false) {\n          pTVar5 = parameters->target_;\n          if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }\n          if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }\n        }" if (parenthesized_expression "((parameters->options_->Map_).user_set_via_option == false)" ( (binary_expression "(parameters->options_->Map_).user_set_via_option == false" (field_expression "(parameters->options_->Map_).user_set_via_option" (parenthesized_expression "(parameters->options_->Map_)" ( (field_expression "parameters->options_->Map_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n          pTVar5 = parameters->target_;\n          if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }\n          if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }\n        }" { (expression_statement "pTVar5 = parameters->target_;" (assignment_expression "pTVar5 = parameters->target_" identifier = (field_expression "parameters->target_" identifier -> field_identifier)) ;) (if_statement "if (pTVar5 == (Target *)0x0) {\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }" if (parenthesized_expression "(pTVar5 == (Target *)0x0)" ( (binary_expression "pTVar5 == (Target *)0x0" identifier == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n          }" { (labeled_statement "LAB_00227090:\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable("../../gold/parameters.h",0x69,"target");" statement_identifier : 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 ") ))) ;)) })) (if_statement "if ((parameters->debug_ & 8) == 0) {\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }" if (parenthesized_expression "((parameters->debug_ & 8) == 0)" ( (binary_expression "(parameters->debug_ & 8) == 0" (parenthesized_expression "(parameters->debug_ & 8)" ( (binary_expression "parameters->debug_ & 8" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }\n            if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }\n          }" { (if_statement "if (*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax) {\n              cVar7 = Target::do_may_relax(pTVar5);\n            }\n            else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }" if (parenthesized_expression "(*(code **)(*(long *)pTVar5 + 0xe0) == Target::do_may_relax)" ( (binary_expression "*(code **)(*(long *)pTVar5 + 0xe0) == Target" (pointer_expression "*(code **)(*(long *)pTVar5 + 0xe0)" * (cast_expression "(code **)(*(long *)pTVar5 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar5 + 0xe0)" ( (binary_expression "*(long *)pTVar5 + 0xe0" (pointer_expression "*(long *)pTVar5" * (cast_expression "(long *)pTVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) (ERROR "::do_may_relax" : : identifier) )) (compound_statement "{\n              cVar7 = Target::do_may_relax(pTVar5);\n            }" { (ERROR "cVar7 = Target::" (assignment_expression "cVar7 = Target" identifier = identifier) : :) (expression_statement "do_may_relax(pTVar5);" (call_expression "do_may_relax(pTVar5)" identifier (argument_list "(pTVar5)" ( identifier ))) ;) }) (else_clause "else {\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }" else (compound_statement "{\n              cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();\n            }" { (expression_statement "cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))();" (assignment_expression "cVar7 = (**(code **)(*(long *)pTVar5 + 0xe0))()" identifier = (call_expression "(**(code **)(*(long *)pTVar5 + 0xe0))()" (parenthesized_expression "(**(code **)(*(long *)pTVar5 + 0xe0))" ( (pointer_expression "**(code **)(*(long *)pTVar5 + 0xe0)" * (pointer_expression "*(code **)(*(long *)pTVar5 + 0xe0)" * (cast_expression "(code **)(*(long *)pTVar5 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)pTVar5 + 0xe0)" ( (binary_expression "*(long *)pTVar5 + 0xe0" (pointer_expression "*(long *)pTVar5" * (cast_expression "(long *)pTVar5" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if ((cVar7 == '\0') && (layout->section_ordering_specified_ == false)) {\n              return (off_t)pcVar9;\n            }" if (parenthesized_expression "((cVar7 == '\0') && (layout->section_ordering_specified_ == false))" ( (binary_expression "(cVar7 == '\0') && (layout->section_ordering_specified_ == false)" (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(layout->section_ordering_specified_ == false)" ( (binary_expression "layout->section_ordering_specified_ == false" (field_expression "layout->section_ordering_specified_" identifier -> field_identifier) == false) ))) )) (compound_statement "{\n              return (off_t)pcVar9;\n            }" { (return_statement "return (off_t)pcVar9;" return (cast_expression "(off_t)pcVar9" ( (type_descriptor "off_t" type_identifier) ) identifier) ;) })) })) })) }))) }))) }))) (labeled_statement "LAB_00226aba:\n  lVar15 = 0;" statement_identifier : (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;)) (if_statement "if (addralign != 0) {\n    for (; (addralign >> lVar15 & 1) == 0; lVar15 = lVar15 + 1) {\n    }\n  }" if (parenthesized_expression "(addralign != 0)" ( (binary_expression "addralign != 0" identifier != number_literal) )) (compound_statement "{\n    for (; (addralign >> lVar15 & 1) == 0; lVar15 = lVar15 + 1) {\n    }\n  }" { (for_statement "for (; (addralign >> lVar15 & 1) == 0; lVar15 = lVar15 + 1) {\n    }" for ( ; (binary_expression "(addralign >> lVar15 & 1) == 0" (parenthesized_expression "(addralign >> lVar15 & 1)" ( (binary_expression "addralign >> lVar15 & 1" (binary_expression "addralign >> lVar15" identifier >> identifier) & number_literal) )) == number_literal) ; (assignment_expression "lVar15 = lVar15 + 1" identifier = (binary_expression "lVar15 + 1" identifier + number_literal)) ) (compound_statement "{\n    }" { })) })) (expression_statement "iVar17 = (int)lVar15;" (assignment_expression "iVar17 = (int)lVar15" identifier = (cast_expression "(int)lVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (addralign == 0) {\n    iVar17 = -1;\n  }" if (parenthesized_expression "(addralign == 0)" ( (binary_expression "addralign == 0" identifier == number_literal) )) (compound_statement "{\n    iVar17 = -1;\n  }" { (expression_statement "iVar17 = -1;" (assignment_expression "iVar17 = -1" identifier = number_literal) ;) })) (expression_statement "fill_data.field_2._8_4_ = 0;" (assignment_expression "fill_data.field_2._8_4_ = 0" (field_expression "fill_data.field_2._8_4_" (field_expression "fill_data.field_2" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "fill_data._M_dataplus._M_p._4_4_ = iVar17 + 1;" (assignment_expression "fill_data._M_dataplus._M_p._4_4_ = iVar17 + 1" (field_expression "fill_data._M_dataplus._M_p._4_4_" (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "fill_data._M_dataplus._M_p._0_4_ = shndx;" (assignment_expression "fill_data._M_dataplus._M_p._0_4_ = shndx" (field_expression "fill_data._M_dataplus._M_p._0_4_" (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (shndx + 4 < 4) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe9a,"Input_section");\n  }" if (parenthesized_expression "(shndx + 4 < 4)" ( (binary_expression "shndx + 4 < 4" (binary_expression "shndx + 4" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/output.h",0xe9a,"Input_section");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xe9a,"Input_section");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe9a,"Input_section")" identifier (argument_list "("../../gold/output.h",0xe9a,"Input_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""Input_section"" " string_content ") ))) ;) })) (expression_statement "fill_data._M_string_length = len;" (assignment_expression "fill_data._M_string_length = len" (field_expression "fill_data._M_string_length" identifier . field_identifier) = identifier) ;) (expression_statement "fill_data.field_2._M_allocated_capacity = (size_type)object;" (assignment_expression "fill_data.field_2._M_allocated_capacity = (size_type)object" (field_expression "fill_data.field_2._M_allocated_capacity" (field_expression "fill_data.field_2" identifier . field_identifier) . field_identifier) = (cast_expression "(size_type)object" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (if_statement "if (parameters->options_ == (General_options *)0x0) {\nLAB_00227060:\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 "{\nLAB_00227060:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_00227060:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if ((parameters->options_->section_ordering_file_).value == (char *)0x0) goto LAB_00226b96;" if (parenthesized_expression "((parameters->options_->section_ordering_file_).value == (char *)0x0)" ( (binary_expression "(parameters->options_->section_ordering_file_).value == (char *)0x0" (field_expression "(parameters->options_->section_ordering_file_).value" (parenthesized_expression "(parameters->options_->section_ordering_file_)" ( (field_expression "parameters->options_->section_ordering_file_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00226b96;" goto statement_identifier ;)) (expression_statement "pcVar12 = local_58 + 0x10;" (assignment_expression "pcVar12 = local_58 + 0x10" identifier = (binary_expression "local_58 + 0x10" identifier + number_literal)) ;) (expression_statement "local_58._0_8_ = pcVar12;" (assignment_expression "local_58._0_8_ = pcVar12" (field_expression "local_58._0_8_" identifier . field_identifier) = identifier) ;) (expression_statement "__n = strlen(secname);" (assignment_expression "__n = strlen(secname)" identifier = (call_expression "strlen(secname)" identifier (argument_list "(secname)" ( identifier )))) ;) (expression_statement "__dnew = __n;" (assignment_expression "__dnew = __n" identifier = identifier) ;) (if_statement "if (__n < 0x10) {\n    if (__n == 1) {\n      local_58[0x10] = *secname;\n    }\n    else if (__n != 0) goto LAB_00226f36;\n  }\n  else {\n    pcVar12 = (pointer)std::string::_M_create((string *)local_58,&__dnew,0);\n    local_58._16_8_ = __dnew;\n    local_58._0_8_ = pcVar12;\nLAB_00226f36:\n    memcpy(pcVar12,secname,__n);\n    pcVar12 = (pointer)local_58._0_8_;\n  }" if (parenthesized_expression "(__n < 0x10)" ( (binary_expression "__n < 0x10" identifier < number_literal) )) (compound_statement "{\n    if (__n == 1) {\n      local_58[0x10] = *secname;\n    }\n    else if (__n != 0) goto LAB_00226f36;\n  }" { (if_statement "if (__n == 1) {\n      local_58[0x10] = *secname;\n    }\n    else if (__n != 0) goto LAB_00226f36;" if (parenthesized_expression "(__n == 1)" ( (binary_expression "__n == 1" identifier == number_literal) )) (compound_statement "{\n      local_58[0x10] = *secname;\n    }" { (expression_statement "local_58[0x10] = *secname;" (assignment_expression "local_58[0x10] = *secname" (subscript_expression "local_58[0x10]" identifier [ number_literal ]) = (pointer_expression "*secname" * identifier)) ;) }) (else_clause "else if (__n != 0) goto LAB_00226f36;" else (if_statement "if (__n != 0) goto LAB_00226f36;" if (parenthesized_expression "(__n != 0)" ( (binary_expression "__n != 0" identifier != number_literal) )) (goto_statement "goto LAB_00226f36;" goto statement_identifier ;)))) }) (else_clause "else {\n    pcVar12 = (pointer)std::string::_M_create((string *)local_58,&__dnew,0);\n    local_58._16_8_ = __dnew;\n    local_58._0_8_ = pcVar12;\nLAB_00226f36:\n    memcpy(pcVar12,secname,__n);\n    pcVar12 = (pointer)local_58._0_8_;\n  }" else (compound_statement "{\n    pcVar12 = (pointer)std::string::_M_create((string *)local_58,&__dnew,0);\n    local_58._16_8_ = __dnew;\n    local_58._0_8_ = pcVar12;\nLAB_00226f36:\n    memcpy(pcVar12,secname,__n);\n    pcVar12 = (pointer)local_58._0_8_;\n  }" { (ERROR "pcVar12 = (pointer)std::" (assignment_expression "pcVar12 = (pointer)std" identifier = (cast_expression "(pointer)std" ( (type_descriptor "pointer" type_identifier) ) identifier)) : :) (labeled_statement "string::_M_create((string *)local_58,&__dnew,0);" statement_identifier : (ERROR ":" :) (expression_statement "_M_create((string *)local_58,&__dnew,0);" (call_expression "_M_create((string *)local_58,&__dnew,0)" identifier (argument_list "((string *)local_58,&__dnew,0)" ( (cast_expression "(string *)local_58" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&__dnew" & identifier) , number_literal ))) ;)) (expression_statement "local_58._16_8_ = __dnew;" (assignment_expression "local_58._16_8_ = __dnew" (field_expression "local_58._16_8_" identifier . field_identifier) = identifier) ;) (expression_statement "local_58._0_8_ = pcVar12;" (assignment_expression "local_58._0_8_ = pcVar12" (field_expression "local_58._0_8_" identifier . field_identifier) = identifier) ;) (labeled_statement "LAB_00226f36:\n    memcpy(pcVar12,secname,__n);" statement_identifier : (expression_statement "memcpy(pcVar12,secname,__n);" (call_expression "memcpy(pcVar12,secname,__n)" identifier (argument_list "(pcVar12,secname,__n)" ( identifier , identifier , identifier ))) ;)) (expression_statement "pcVar12 = (pointer)local_58._0_8_;" (assignment_expression "pcVar12 = (pointer)local_58._0_8_" identifier = (cast_expression "(pointer)local_58._0_8_" ( (type_descriptor "pointer" type_identifier) ) (field_expression "local_58._0_8_" identifier . field_identifier))) ;) }))) (expression_statement "pcVar12[__dnew] = '\0';" (assignment_expression "pcVar12[__dnew] = '\0'" (subscript_expression "pcVar12[__dnew]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_58._8_8_ = __dnew;" (assignment_expression "local_58._8_8_ = __dnew" (field_expression "local_58._8_8_" identifier . field_identifier) = identifier) ;) comment (ERROR "uVar8 = Layout::" (assignment_expression "uVar8 = Layout" identifier = identifier) : :) (expression_statement "find_section_order_index(layout,(string *)local_58);" (call_expression "find_section_order_index(layout,(string *)local_58)" identifier (argument_list "(layout,(string *)local_58)" ( identifier , (cast_expression "(string *)local_58" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if ((undefined1 *)local_58._0_8_ != local_58 + 0x10) {\n    operator_delete((void *)local_58._0_8_);\n  }" if (parenthesized_expression "((undefined1 *)local_58._0_8_ != local_58 + 0x10)" ( (binary_expression "(undefined1 *)local_58._0_8_ != local_58 + 0x10" (cast_expression "(undefined1 *)local_58._0_8_" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_58._0_8_" identifier . field_identifier)) != (binary_expression "local_58 + 0x10" identifier + number_literal)) )) (compound_statement "{\n    operator_delete((void *)local_58._0_8_);\n  }" { (expression_statement "operator_delete((void *)local_58._0_8_);" (call_expression "operator_delete((void *)local_58._0_8_)" identifier (argument_list "((void *)local_58._0_8_)" ( (cast_expression "(void *)local_58._0_8_" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "local_58._0_8_" identifier . field_identifier)) ))) ;) })) (if_statement "if (uVar8 != 0) {\n    this->field_0xc9 = this->field_0xc9 | 2;\n    fill_data.field_2._8_4_ = uVar8;\n  }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    this->field_0xc9 = this->field_0xc9 | 2;\n    fill_data.field_2._8_4_ = uVar8;\n  }" { (expression_statement "this->field_0xc9 = this->field_0xc9 | 2;" (assignment_expression "this->field_0xc9 = this->field_0xc9 | 2" (field_expression "this->field_0xc9" identifier -> field_identifier) = (binary_expression "this->field_0xc9 | 2" (field_expression "this->field_0xc9" identifier -> field_identifier) | number_literal)) ;) (expression_statement "fill_data.field_2._8_4_ = uVar8;" (assignment_expression "fill_data.field_2._8_4_ = uVar8" (field_expression "fill_data.field_2._8_4_" (field_expression "fill_data.field_2" identifier . field_identifier) . field_identifier) = identifier) ;) })) (labeled_statement "LAB_00226b96:\n  __position._M_current =\n       (this->input_sections_).\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n       ._M_impl._M_finish;" statement_identifier : (ERROR "__position._M_current =\n       (this->input_sections_).\n       super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::" (comma_expression "__position._M_current =\n       (this->input_sections_).\n       super__Vector_base<gold::Output_section::Input_section,_std" (assignment_expression "__position._M_current =\n       (this->input_sections_).\n       super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) = (binary_expression "(this->input_sections_).\n       super__Vector_base<gold" (field_expression "(this->input_sections_).\n       super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Output_section::Input_section>_>\n       ._M_impl._M_finish;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n       ._M_impl._M_finish;" (field_expression "Input_section>_>\n       ._M_impl._M_finish" (field_expression "Input_section>_>\n       ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;))) (if_statement "if (__position._M_current ==\n      (this->input_sections_).\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_end_of_storage) {\n    std::\n    vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&this->input_sections_,__position,(Input_section *)&fill_data);\n  }\n  else {\n    (__position._M_current)->shndx_ =\n         (int)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p);\n    (__position._M_current)->p2align_ =\n         (int)(CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) >> 0x20);\n    ((__position._M_current)->u1_).entsize = fill_data._M_string_length;\n    (__position._M_current)->u2_ =\n         (anon_union_8_4_139239c7_for_u2_)fill_data.field_2._M_allocated_capacity;\n    *(ulong *)&(__position._M_current)->section_order_index_ =\n         CONCAT44(fill_data.field_2._12_4_,fill_data.field_2._8_4_);\n    (this->input_sections_).\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }" if (parenthesized_expression "(__position._M_current ==\n      (this->input_sections_).\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n      ._M_impl._M_end_of_storage)" ( (ERROR "__position._M_current ==\n      (this->input_sections_).\n      super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::" (comma_expression "__position._M_current ==\n      (this->input_sections_).\n      super__Vector_base<gold::Output_section::Input_section,_std" (binary_expression "__position._M_current ==\n      (this->input_sections_).\n      super__Vector_base<gold" (field_expression "__position._M_current" identifier . field_identifier) == (binary_expression "(this->input_sections_).\n      super__Vector_base<gold" (field_expression "(this->input_sections_).\n      super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section::Input_section" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Input_section>_>\n      ._M_impl._M_end_of_storage" (field_expression "Input_section>_>\n      ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n    std::\n    vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&this->input_sections_,__position,(Input_section *)&fill_data);\n  }" { (labeled_statement "std::\n    vector<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&this->input_sections_,__position,(Input_section *)&fill_data);" statement_identifier (ERROR "::\n    vector<gold:" : : (binary_expression "vector<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&this->input_sections_,__position,(Input_section *)&fill_data);" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n    ::_M_realloc_insert<const_gold::Output_section::Input_section&>\n              (&this->input_sections_,__position,(Input_section *)&fill_data);" statement_identifier (ERROR "::Input_section>_>\n    ::_M_realloc_insert<const_gold:" : : (binary_expression "Input_section>_" identifier > identifier) > : : (binary_expression "_M_realloc_insert<const_gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section&>\n              (&this->input_sections_,__position,(Input_section *)&fill_data);" statement_identifier : (ERROR ":" :) (expression_statement "Input_section&>\n              (&this->input_sections_,__position,(Input_section *)&fill_data);" (binary_expression "Input_section&>\n              (&this->input_sections_,__position,(Input_section *)&fill_data)" identifier (ERROR "&" &) > (parenthesized_expression "(&this->input_sections_,__position,(Input_section *)&fill_data)" ( (comma_expression "&this->input_sections_,__position,(Input_section *)&fill_data" (pointer_expression "&this->input_sections_" & (field_expression "this->input_sections_" identifier -> field_identifier)) , (comma_expression "__position,(Input_section *)&fill_data" identifier , (cast_expression "(Input_section *)&fill_data" ( (type_descriptor "Input_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&fill_data" & identifier)))) ))) ;))))) }) (else_clause "else {\n    (__position._M_current)->shndx_ =\n         (int)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p);\n    (__position._M_current)->p2align_ =\n         (int)(CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) >> 0x20);\n    ((__position._M_current)->u1_).entsize = fill_data._M_string_length;\n    (__position._M_current)->u2_ =\n         (anon_union_8_4_139239c7_for_u2_)fill_data.field_2._M_allocated_capacity;\n    *(ulong *)&(__position._M_current)->section_order_index_ =\n         CONCAT44(fill_data.field_2._12_4_,fill_data.field_2._8_4_);\n    (this->input_sections_).\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }" else (compound_statement "{\n    (__position._M_current)->shndx_ =\n         (int)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p);\n    (__position._M_current)->p2align_ =\n         (int)(CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) >> 0x20);\n    ((__position._M_current)->u1_).entsize = fill_data._M_string_length;\n    (__position._M_current)->u2_ =\n         (anon_union_8_4_139239c7_for_u2_)fill_data.field_2._M_allocated_capacity;\n    *(ulong *)&(__position._M_current)->section_order_index_ =\n         CONCAT44(fill_data.field_2._12_4_,fill_data.field_2._8_4_);\n    (this->input_sections_).\n    super__Vector_base<gold::Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;\n  }" { (expression_statement "(__position._M_current)->shndx_ =\n         (int)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p);" (assignment_expression "(__position._M_current)->shndx_ =\n         (int)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p)" (field_expression "(__position._M_current)->shndx_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(int)CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p)" ( (type_descriptor "int" primitive_type) ) (call_expression "CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p)" identifier (argument_list "(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p)" ( (field_expression "fill_data._M_dataplus._M_p._4_4_" (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(uint)fill_data._M_dataplus._M_p" ( (type_descriptor "uint" type_identifier) ) (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier)) ))))) ;) (expression_statement "(__position._M_current)->p2align_ =\n         (int)(CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) >> 0x20);" (assignment_expression "(__position._M_current)->p2align_ =\n         (int)(CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) >> 0x20)" (field_expression "(__position._M_current)->p2align_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(int)(CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) >> 0x20)" ( (binary_expression "CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p) >> 0x20" (call_expression "CONCAT44(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p)" identifier (argument_list "(fill_data._M_dataplus._M_p._4_4_,(uint)fill_data._M_dataplus._M_p)" ( (field_expression "fill_data._M_dataplus._M_p._4_4_" (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier) . field_identifier) , (cast_expression "(uint)fill_data._M_dataplus._M_p" ( (type_descriptor "uint" type_identifier) ) (field_expression "fill_data._M_dataplus._M_p" (field_expression "fill_data._M_dataplus" identifier . field_identifier) . field_identifier)) ))) >> number_literal) )))) ;) (expression_statement "((__position._M_current)->u1_).entsize = fill_data._M_string_length;" (assignment_expression "((__position._M_current)->u1_).entsize = fill_data._M_string_length" (field_expression "((__position._M_current)->u1_).entsize" (parenthesized_expression "((__position._M_current)->u1_)" ( (field_expression "(__position._M_current)->u1_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "fill_data._M_string_length" identifier . field_identifier)) ;) (expression_statement "(__position._M_current)->u2_ =\n         (anon_union_8_4_139239c7_for_u2_)fill_data.field_2._M_allocated_capacity;" (assignment_expression "(__position._M_current)->u2_ =\n         (anon_union_8_4_139239c7_for_u2_)fill_data.field_2._M_allocated_capacity" (field_expression "(__position._M_current)->u2_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier) = (cast_expression "(anon_union_8_4_139239c7_for_u2_)fill_data.field_2._M_allocated_capacity" ( (type_descriptor "anon_union_8_4_139239c7_for_u2_" type_identifier) ) (field_expression "fill_data.field_2._M_allocated_capacity" (field_expression "fill_data.field_2" identifier . field_identifier) . field_identifier))) ;) (expression_statement "*(ulong *)&(__position._M_current)->section_order_index_ =\n         CONCAT44(fill_data.field_2._12_4_,fill_data.field_2._8_4_);" (assignment_expression "*(ulong *)&(__position._M_current)->section_order_index_ =\n         CONCAT44(fill_data.field_2._12_4_,fill_data.field_2._8_4_)" (pointer_expression "*(ulong *)&(__position._M_current)->section_order_index_" * (cast_expression "(ulong *)&(__position._M_current)->section_order_index_" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(__position._M_current)->section_order_index_" & (field_expression "(__position._M_current)->section_order_index_" (parenthesized_expression "(__position._M_current)" ( (field_expression "__position._M_current" identifier . field_identifier) )) -> field_identifier)))) = (call_expression "CONCAT44(fill_data.field_2._12_4_,fill_data.field_2._8_4_)" identifier (argument_list "(fill_data.field_2._12_4_,fill_data.field_2._8_4_)" ( (field_expression "fill_data.field_2._12_4_" (field_expression "fill_data.field_2" identifier . field_identifier) . field_identifier) , (field_expression "fill_data.field_2._8_4_" (field_expression "fill_data.field_2" identifier . field_identifier) . field_identifier) )))) ;) (ERROR "(this->input_sections_).\n    super__Vector_base<gold::" (binary_expression "(this->input_sections_).\n    super__Vector_base<gold" (field_expression "(this->input_sections_).\n    super__Vector_base" (parenthesized_expression "(this->input_sections_)" ( (field_expression "this->input_sections_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Output_section::Input_section,_std::allocator<gold::Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;" statement_identifier (ERROR "::Input_section,_std::allocator<gold:" : : (comma_expression "Input_section,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Output_section::Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;" statement_identifier : (ERROR ":" :) (expression_statement "Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1;" (assignment_expression "Input_section>_>\n    ._M_impl._M_finish = __position._M_current + 1" (field_expression "Input_section>_>\n    ._M_impl._M_finish" (field_expression "Input_section>_>\n    ._M_impl" (binary_expression "Input_section>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (binary_expression "__position._M_current + 1" (field_expression "__position._M_current" identifier . field_identifier) + number_literal)) ;))) }))) (return_statement "return (off_t)pcVar9;" return (cast_expression "(off_t)pcVar9" ( (type_descriptor "off_t" type_identifier) ) identifier) ;) (ERROR "}" }))
(translation_unit "size_t * FUN_00226940(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)\n\n{\n  long *plVar1;\n  undefined4 uVar2;\n  undefined8 *puVar3;\n  code *pcVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined1 uVar7;\n  char cVar8;\n  int iVar9;\n  ulong uVar10;\n  size_t *psVar11;\n  size_t sVar12;\n  undefined8 uVar13;\n  size_t *psVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  ulong uVar19;\n  ulong uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  uint uVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  size_t sStack_80;\n  uint local_78;\n  int iStack_74;\n  ulong uStack_70;\n  long lStack_68;\n  int iStack_60;\n  undefined4 uStack_5c;\n  size_t *local_58;\n  size_t local_50;\n  size_t local_48;\n  undefined4 local_40;\n  \n  bVar26 = 0;\n  lVar18 = *param_6;\n  uVar19 = (ulong)*(uint *)(lVar18 + 0x20);\n  uVar10 = (ulong)*(uint *)(lVar18 + 0x14);\n  lVar17 = *(long *)(param_3 + 0x48);\n  if (lVar17 == 0) {\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  uVar20 = uVar19;\n  if (uVar5 != 0) {\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }\n  bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;\n  bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;\n  if (bVar24) {\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }\n  lVar17 = 0xb;\n  uVar23 = *(uint *)(lVar18 + 8);\n  uVar2 = *(undefined4 *)(lVar18 + 0x24);\n  pbVar21 = param_5;\n  pbVar22 = (byte *)".debug_str";\n  do {\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  } while (bVar25);\n  if ((!bVar24 && !bVar25) == bVar24) {\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }\n  FUN_001f5d70(param_1,uVar23);\n  if ((*(byte *)(param_1 + 0xca) & 2) == 0) {\n    FUN_001f48e0();\n  }\n  if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;\n  while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }\n  psVar14 = *(size_t **)(param_1 + 0x10);\n  psVar11 = psVar14;\n  if (uVar20 != 0) {\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }\n  if ((*(byte *)(param_1 + 0x20) & 2) != 0) {\n                    \n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  *(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;\n  if (((bVar26 & 1) == 0) && (param_8 == '\0')) {\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }\nLAB_00226aba:\n  lVar18 = 0;\n  if (uVar20 != 0) {\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }\n  iStack_74 = (int)lVar18;\n  if (uVar20 == 0) {\n    iStack_74 = -1;\n  }\n  iStack_60 = 0;\n  iStack_74 = iStack_74 + 1;\n  local_78 = param_4;\n  if (param_4 + 4 < 4) {\n                    \n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }\n  uStack_70 = uVar10;\n  lStack_68 = param_3;\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_00227060:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;\n  psVar14 = &local_48;\n  local_58 = psVar14;\n  sVar12 = strlen((char *)param_5);\n  sStack_80 = sVar12;\n  if (sVar12 < 0x10) {\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }\n  else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }\n  *(undefined1 *)((long)psVar14 + sStack_80) = 0;\n  local_50 = sStack_80;\n                    \n  iVar9 = FUN_001ac380(param_2,&local_58);\n  if (local_58 != &local_48) {\n    FUN_002dac70();\n  }\n  if (iVar9 != 0) {\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }\nLAB_00226b96:\n  puVar3 = *(undefined8 **)(param_1 + 0x90);\n  if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }\n  FUN_0020a990(param_1 + 0x88,puVar3,&local_78);\n  return psVar11;\n}\n\n" (function_definition "size_t * FUN_00226940(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)\n\n{\n  long *plVar1;\n  undefined4 uVar2;\n  undefined8 *puVar3;\n  code *pcVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined1 uVar7;\n  char cVar8;\n  int iVar9;\n  ulong uVar10;\n  size_t *psVar11;\n  size_t sVar12;\n  undefined8 uVar13;\n  size_t *psVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  ulong uVar19;\n  ulong uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  uint uVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  size_t sStack_80;\n  uint local_78;\n  int iStack_74;\n  ulong uStack_70;\n  long lStack_68;\n  int iStack_60;\n  undefined4 uStack_5c;\n  size_t *local_58;\n  size_t local_50;\n  size_t local_48;\n  undefined4 local_40;\n  \n  bVar26 = 0;\n  lVar18 = *param_6;\n  uVar19 = (ulong)*(uint *)(lVar18 + 0x20);\n  uVar10 = (ulong)*(uint *)(lVar18 + 0x14);\n  lVar17 = *(long *)(param_3 + 0x48);\n  if (lVar17 == 0) {\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  uVar20 = uVar19;\n  if (uVar5 != 0) {\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }\n  bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;\n  bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;\n  if (bVar24) {\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }\n  lVar17 = 0xb;\n  uVar23 = *(uint *)(lVar18 + 8);\n  uVar2 = *(undefined4 *)(lVar18 + 0x24);\n  pbVar21 = param_5;\n  pbVar22 = (byte *)".debug_str";\n  do {\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  } while (bVar25);\n  if ((!bVar24 && !bVar25) == bVar24) {\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }\n  FUN_001f5d70(param_1,uVar23);\n  if ((*(byte *)(param_1 + 0xca) & 2) == 0) {\n    FUN_001f48e0();\n  }\n  if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;\n  while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }\n  psVar14 = *(size_t **)(param_1 + 0x10);\n  psVar11 = psVar14;\n  if (uVar20 != 0) {\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }\n  if ((*(byte *)(param_1 + 0x20) & 2) != 0) {\n                    \n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  *(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;\n  if (((bVar26 & 1) == 0) && (param_8 == '\0')) {\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }\nLAB_00226aba:\n  lVar18 = 0;\n  if (uVar20 != 0) {\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }\n  iStack_74 = (int)lVar18;\n  if (uVar20 == 0) {\n    iStack_74 = -1;\n  }\n  iStack_60 = 0;\n  iStack_74 = iStack_74 + 1;\n  local_78 = param_4;\n  if (param_4 + 4 < 4) {\n                    \n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }\n  uStack_70 = uVar10;\n  lStack_68 = param_3;\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_00227060:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;\n  psVar14 = &local_48;\n  local_58 = psVar14;\n  sVar12 = strlen((char *)param_5);\n  sStack_80 = sVar12;\n  if (sVar12 < 0x10) {\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }\n  else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }\n  *(undefined1 *)((long)psVar14 + sStack_80) = 0;\n  local_50 = sStack_80;\n                    \n  iVar9 = FUN_001ac380(param_2,&local_58);\n  if (local_58 != &local_48) {\n    FUN_002dac70();\n  }\n  if (iVar9 != 0) {\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }\nLAB_00226b96:\n  puVar3 = *(undefined8 **)(param_1 + 0x90);\n  if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }\n  FUN_0020a990(param_1 + 0x88,puVar3,&local_78);\n  return psVar11;\n}" primitive_type (pointer_declarator "* FUN_00226940(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)" * (function_declarator "FUN_00226940(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)" identifier (parameter_list "(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "byte *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "long *param_6" (sized_type_specifier "long" long) (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "char param_8" primitive_type identifier) )))) (compound_statement "{\n  long *plVar1;\n  undefined4 uVar2;\n  undefined8 *puVar3;\n  code *pcVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined1 uVar7;\n  char cVar8;\n  int iVar9;\n  ulong uVar10;\n  size_t *psVar11;\n  size_t sVar12;\n  undefined8 uVar13;\n  size_t *psVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  ulong uVar19;\n  ulong uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  uint uVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  size_t sStack_80;\n  uint local_78;\n  int iStack_74;\n  ulong uStack_70;\n  long lStack_68;\n  int iStack_60;\n  undefined4 uStack_5c;\n  size_t *local_58;\n  size_t local_50;\n  size_t local_48;\n  undefined4 local_40;\n  \n  bVar26 = 0;\n  lVar18 = *param_6;\n  uVar19 = (ulong)*(uint *)(lVar18 + 0x20);\n  uVar10 = (ulong)*(uint *)(lVar18 + 0x14);\n  lVar17 = *(long *)(param_3 + 0x48);\n  if (lVar17 == 0) {\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  uVar20 = uVar19;\n  if (uVar5 != 0) {\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }\n  bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;\n  bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;\n  if (bVar24) {\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }\n  lVar17 = 0xb;\n  uVar23 = *(uint *)(lVar18 + 8);\n  uVar2 = *(undefined4 *)(lVar18 + 0x24);\n  pbVar21 = param_5;\n  pbVar22 = (byte *)".debug_str";\n  do {\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  } while (bVar25);\n  if ((!bVar24 && !bVar25) == bVar24) {\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }\n  FUN_001f5d70(param_1,uVar23);\n  if ((*(byte *)(param_1 + 0xca) & 2) == 0) {\n    FUN_001f48e0();\n  }\n  if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;\n  while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }\n  psVar14 = *(size_t **)(param_1 + 0x10);\n  psVar11 = psVar14;\n  if (uVar20 != 0) {\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }\n  if ((*(byte *)(param_1 + 0x20) & 2) != 0) {\n                    \n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  *(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;\n  if (((bVar26 & 1) == 0) && (param_8 == '\0')) {\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }\nLAB_00226aba:\n  lVar18 = 0;\n  if (uVar20 != 0) {\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }\n  iStack_74 = (int)lVar18;\n  if (uVar20 == 0) {\n    iStack_74 = -1;\n  }\n  iStack_60 = 0;\n  iStack_74 = iStack_74 + 1;\n  local_78 = param_4;\n  if (param_4 + 4 < 4) {\n                    \n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }\n  uStack_70 = uVar10;\n  lStack_68 = param_3;\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_00227060:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;\n  psVar14 = &local_48;\n  local_58 = psVar14;\n  sVar12 = strlen((char *)param_5);\n  sStack_80 = sVar12;\n  if (sVar12 < 0x10) {\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }\n  else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }\n  *(undefined1 *)((long)psVar14 + sStack_80) = 0;\n  local_50 = sStack_80;\n                    \n  iVar9 = FUN_001ac380(param_2,&local_58);\n  if (local_58 != &local_48) {\n    FUN_002dac70();\n  }\n  if (iVar9 != 0) {\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }\nLAB_00226b96:\n  puVar3 = *(undefined8 **)(param_1 + 0x90);\n  if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }\n  FUN_0020a990(param_1 + 0x88,puVar3,&local_78);\n  return psVar11;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 uVar7;" type_identifier identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "size_t *psVar11;" primitive_type (pointer_declarator "*psVar11" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "size_t *psVar14;" primitive_type (pointer_declarator "*psVar14" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "ulong uVar20;" type_identifier identifier ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "size_t sStack_80;" primitive_type identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "ulong uStack_70;" type_identifier identifier ;) (declaration "long lStack_68;" (sized_type_specifier "long" long) identifier ;) (declaration "int iStack_60;" primitive_type identifier ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "size_t *local_58;" primitive_type (pointer_declarator "*local_58" * identifier) ;) (declaration "size_t local_50;" primitive_type identifier ;) (declaration "size_t local_48;" primitive_type identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (expression_statement "bVar26 = 0;" (assignment_expression "bVar26 = 0" identifier = number_literal) ;) (expression_statement "lVar18 = *param_6;" (assignment_expression "lVar18 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (expression_statement "uVar19 = (ulong)*(uint *)(lVar18 + 0x20);" (assignment_expression "uVar19 = (ulong)*(uint *)(lVar18 + 0x20)" identifier = (binary_expression "(ulong)*(uint *)(lVar18 + 0x20)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar18 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0x20)" ( (binary_expression "lVar18 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = (ulong)*(uint *)(lVar18 + 0x14);" (assignment_expression "uVar10 = (ulong)*(uint *)(lVar18 + 0x14)" identifier = (binary_expression "(ulong)*(uint *)(lVar18 + 0x14)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(lVar18 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0x14)" ( (binary_expression "lVar18 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "lVar17 = *(long *)(param_3 + 0x48);" (assignment_expression "lVar17 = *(long *)(param_3 + 0x48)" identifier = (pointer_expression "*(long *)(param_3 + 0x48)" * (cast_expression "(long *)(param_3 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x48)" ( (binary_expression "param_3 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (lVar17 == 0) {\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }" { (labeled_statement "LAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;" statement_identifier : (expression_statement "uVar5 = uVar19 - 1 & uVar19;" (assignment_expression "uVar5 = uVar19 - 1 & uVar19" identifier = (binary_expression "uVar19 - 1 & uVar19" (binary_expression "uVar19 - 1" identifier - number_literal) & identifier)) ;)) }) (else_clause "else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }" else (compound_statement "{\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }" { (expression_statement "lVar6 = *(long *)(lVar17 + 0x10);" (assignment_expression "lVar6 = *(long *)(lVar17 + 0x10)" identifier = (pointer_expression "*(long *)(lVar17 + 0x10)" * (cast_expression "(long *)(lVar17 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar17 + 0x10)" ( (binary_expression "lVar17 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "lVar15 = lVar17 + 8;" (assignment_expression "lVar15 = lVar17 + 8" identifier = (binary_expression "lVar17 + 8" identifier + number_literal)) ;) (if_statement "if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;" if (parenthesized_expression "(*(long *)(lVar17 + 0x10) == 0)" ( (binary_expression "*(long *)(lVar17 + 0x10) == 0" (pointer_expression "*(long *)(lVar17 + 0x10)" * (cast_expression "(long *)(lVar17 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar17 + 0x10)" ( (binary_expression "lVar17 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002269ca;" goto statement_identifier ;)) (do_statement "do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);" do (compound_statement "{\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    }" { (while_statement "while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }" while (parenthesized_expression "(lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20))" ( (comma_expression "lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)" (assignment_expression "lVar16 = lVar6" identifier = identifier) , (binary_expression "param_4 <= *(uint *)(lVar16 + 0x20)" identifier <= (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) )))))) )) (compound_statement "{\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }" { (expression_statement "lVar6 = *(long *)(lVar16 + 0x10);" (assignment_expression "lVar6 = *(long *)(lVar16 + 0x10)" identifier = (pointer_expression "*(long *)(lVar16 + 0x10)" * (cast_expression "(long *)(lVar16 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x10)" ( (binary_expression "lVar16 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "lVar15 = lVar16;" (assignment_expression "lVar15 = lVar16" identifier = identifier) ;) (if_statement "if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;" if (parenthesized_expression "(*(long *)(lVar16 + 0x10) == 0)" ( (binary_expression "*(long *)(lVar16 + 0x10) == 0" (pointer_expression "*(long *)(lVar16 + 0x10)" * (cast_expression "(long *)(lVar16 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x10)" ( (binary_expression "lVar16 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_002269bb;" goto statement_identifier ;)) })) (expression_statement "plVar1 = (long *)(lVar16 + 0x18);" (assignment_expression "plVar1 = (long *)(lVar16 + 0x18)" identifier = (cast_expression "(long *)(lVar16 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x18)" ( (binary_expression "lVar16 + 0x18" identifier + number_literal) )))) ;) (expression_statement "lVar6 = *plVar1;" (assignment_expression "lVar6 = *plVar1" identifier = (pointer_expression "*plVar1" * identifier)) ;) (expression_statement "lVar16 = lVar15;" (assignment_expression "lVar16 = lVar15" identifier = identifier) ;) }) while (parenthesized_expression "(*plVar1 != 0)" ( (binary_expression "*plVar1 != 0" (pointer_expression "*plVar1" * identifier) != number_literal) )) ;) (labeled_statement "LAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;" statement_identifier : (if_statement "if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;" if (parenthesized_expression "((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20)))" ( (binary_expression "(lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))" (parenthesized_expression "(lVar17 + 8 == lVar16)" ( (binary_expression "lVar17 + 8 == lVar16" (binary_expression "lVar17 + 8" identifier + number_literal) == identifier) )) || (parenthesized_expression "(param_4 < *(uint *)(lVar16 + 0x20))" ( (binary_expression "param_4 < *(uint *)(lVar16 + 0x20)" identifier < (pointer_expression "*(uint *)(lVar16 + 0x20)" * (cast_expression "(uint *)(lVar16 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x20)" ( (binary_expression "lVar16 + 0x20" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_002269ca;" goto statement_identifier ;))) (expression_statement "uVar10 = *(ulong *)(lVar16 + 0x28);" (assignment_expression "uVar10 = *(ulong *)(lVar16 + 0x28)" identifier = (pointer_expression "*(ulong *)(lVar16 + 0x28)" * (cast_expression "(ulong *)(lVar16 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x28)" ( (binary_expression "lVar16 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = *(ulong *)(lVar16 + 0x38);" (assignment_expression "uVar19 = *(ulong *)(lVar16 + 0x38)" identifier = (pointer_expression "*(ulong *)(lVar16 + 0x38)" * (cast_expression "(ulong *)(lVar16 + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar16 + 0x38)" ( (binary_expression "lVar16 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = uVar19 - 1 & uVar19;" (assignment_expression "uVar5 = uVar19 - 1 & uVar19" identifier = (binary_expression "uVar19 - 1 & uVar19" (binary_expression "uVar19 - 1" identifier - number_literal) & identifier)) ;) }))) (expression_statement "uVar20 = uVar19;" (assignment_expression "uVar20 = uVar19" identifier = identifier) ;) (if_statement "if (uVar5 != 0) {\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }" { (expression_statement "uVar13 = gettext("invalid alignment %lu for section \"%s\"");" (assignment_expression "uVar13 = gettext("invalid alignment %lu for section \"%s\"")" identifier = (call_expression "gettext("invalid alignment %lu for section \"%s\"")" identifier (argument_list "("invalid alignment %lu for section \"%s\"")" ( (string_literal ""invalid alignment %lu for section \"%s\""" " string_content escape_sequence string_content escape_sequence ") )))) ;) (expression_statement "uVar20 = 1;" (assignment_expression "uVar20 = 1" identifier = number_literal) ;) (expression_statement "FUN_001bd150(param_3,uVar13,uVar19,param_5);" (call_expression "FUN_001bd150(param_3,uVar13,uVar19,param_5)" identifier (argument_list "(param_3,uVar13,uVar19,param_5)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "lVar18 = *param_6;" (assignment_expression "lVar18 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) })) (expression_statement "bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;" (assignment_expression "bVar24 = *(ulong *)(param_1 + 0x30) < uVar20" identifier = (binary_expression "*(ulong *)(param_1 + 0x30) < uVar20" (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) < identifier)) ;) (expression_statement "bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;" (assignment_expression "bVar25 = *(ulong *)(param_1 + 0x30) == uVar20" identifier = (binary_expression "*(ulong *)(param_1 + 0x30) == uVar20" (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) == identifier)) ;) (if_statement "if (bVar24) {\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }" { (expression_statement "*(ulong *)(param_1 + 0x30) = uVar20;" (assignment_expression "*(ulong *)(param_1 + 0x30) = uVar20" (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "lVar17 = 0xb;" (assignment_expression "lVar17 = 0xb" identifier = number_literal) ;) (expression_statement "uVar23 = *(uint *)(lVar18 + 8);" (assignment_expression "uVar23 = *(uint *)(lVar18 + 8)" identifier = (pointer_expression "*(uint *)(lVar18 + 8)" * (cast_expression "(uint *)(lVar18 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 8)" ( (binary_expression "lVar18 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined4 *)(lVar18 + 0x24);" (assignment_expression "uVar2 = *(undefined4 *)(lVar18 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(lVar18 + 0x24)" * (cast_expression "(undefined4 *)(lVar18 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0x24)" ( (binary_expression "lVar18 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "pbVar21 = param_5;" (assignment_expression "pbVar21 = param_5" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)".debug_str";" (assignment_expression "pbVar22 = (byte *)".debug_str"" identifier = (cast_expression "(byte *)".debug_str"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug_str"" " string_content "))) ;) (do_statement "do {\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  } while (bVar25);" do (compound_statement "{\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  }" { (if_statement "if (lVar17 == 0) break;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" identifier = (binary_expression "lVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar21 < *pbVar22;" (assignment_expression "bVar24 = *pbVar21 < *pbVar22" identifier = (binary_expression "*pbVar21 < *pbVar22" (pointer_expression "*pbVar21" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar25 = *pbVar21 == *pbVar22;" (assignment_expression "bVar25 = *pbVar21 == *pbVar22" identifier = (binary_expression "*pbVar21 == *pbVar22" (pointer_expression "*pbVar21" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar21 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar21 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1" identifier = (binary_expression "pbVar22 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar22 + (ulong)bVar26 * -2" identifier + (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar25) == bVar24) {\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }" if (parenthesized_expression "((!bVar24 && !bVar25) == bVar24)" ( (binary_expression "(!bVar24 && !bVar25) == bVar24" (parenthesized_expression "(!bVar24 && !bVar25)" ( (binary_expression "!bVar24 && !bVar25" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) (compound_statement "{\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (expression_statement "uVar23 = uVar23 | 0x30;" (assignment_expression "uVar23 = uVar23 | 0x30" identifier = (binary_expression "uVar23 | 0x30" identifier | number_literal)) ;) })) (expression_statement "FUN_001f5d70(param_1,uVar23);" (call_expression "FUN_001f5d70(param_1,uVar23)" identifier (argument_list "(param_1,uVar23)" ( identifier , identifier ))) ;) (if_statement "if ((*(byte *)(param_1 + 0xca) & 2) == 0) {\n    FUN_001f48e0();\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0xca) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0xca) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0xca) & 2)" ( (binary_expression "*(byte *)(param_1 + 0xca) & 2" (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    FUN_001f48e0();\n  }" { (expression_statement "FUN_001f48e0();" (call_expression "FUN_001f48e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;" if (parenthesized_expression "(((uVar23 & 0x10) != 0) && (param_7 == 0))" ( (binary_expression "((uVar23 & 0x10) != 0) && (param_7 == 0)" (parenthesized_expression "((uVar23 & 0x10) != 0)" ( (binary_expression "(uVar23 & 0x10) != 0" (parenthesized_expression "(uVar23 & 0x10)" ( (binary_expression "uVar23 & 0x10" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00226c80;" goto statement_identifier ;)) (while_statement "while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }" while (parenthesized_expression "(bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0)" ( (comma_expression "bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca)" identifier = (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) ))))) , (binary_expression "(bVar26 & 0x20) != 0" (parenthesized_expression "(bVar26 & 0x20)" ( (binary_expression "bVar26 & 0x20" identifier & number_literal) )) != number_literal)) )) (compound_statement "{\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }" { (expression_statement "psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);" (assignment_expression "psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0)" identifier = (cast_expression "(size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0)" identifier (argument_list "(param_1 + 0xf8,uVar10,uVar20,0)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) , identifier , identifier , number_literal ))))) ;) (if_statement "if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }" if (parenthesized_expression "(psVar14 != (size_t *)0xffffffffffffffff)" ( (binary_expression "psVar14 != (size_t *)0xffffffffffffffff" identifier != (cast_expression "(size_t *)0xffffffffffffffff" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return psVar14;\n    }" { (return_statement "return psVar14;" return identifier ;) })) (expression_statement "uVar20 = *(ulong *)(param_1 + 0x28);" (assignment_expression "uVar20 = *(ulong *)(param_1 + 0x28)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x28)" * (cast_expression "(ulong *)(param_1 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");" (assignment_expression "uVar13 = gettext("out of patch space in section %s; relink with --incremental-full")" identifier = (call_expression "gettext("out of patch space in section %s; relink with --incremental-full")" identifier (argument_list "("out of patch space in section %s; relink with --incremental-full")" ( (string_literal ""out of patch space in section %s; relink with --incremental-full"" " string_content ") )))) ;) (expression_statement "FUN_00178280(uVar13,uVar20);" (call_expression "FUN_00178280(uVar13,uVar20)" identifier (argument_list "(uVar13,uVar20)" ( identifier , identifier ))) ;) (expression_statement "param_6 = (long *)0xffffffffffffffff;" (assignment_expression "param_6 = (long *)0xffffffffffffffff" identifier = (cast_expression "(long *)0xffffffffffffffff" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }" statement_identifier : (if_statement "if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }" if (parenthesized_expression "((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))" ( (binary_expression "(*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0')" (parenthesized_expression "(*(int *)(*param_6 + 0x14) != 0)" ( (binary_expression "*(int *)(*param_6 + 0x14) != 0" (pointer_expression "*(int *)(*param_6 + 0x14)" * (cast_expression "(int *)(*param_6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_6 + 0x14)" ( (binary_expression "*param_6 + 0x14" (pointer_expression "*param_6" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0')" ( (comma_expression "cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'" (assignment_expression "cVar8 = FUN_002379a0(PTR_DAT_0043e6b0)" identifier = (call_expression "FUN_002379a0(PTR_DAT_0043e6b0)" identifier (argument_list "(PTR_DAT_0043e6b0)" ( identifier )))) , (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }" { (if_statement "if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }" if (parenthesized_expression "(((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0'))" ( (binary_expression "((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')" (parenthesized_expression "((*(byte *)(param_1 + 0xca) & 0x10) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0xca) & 0x10) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0xca) & 0x10)" ( (binary_expression "*(byte *)(param_1 + 0xca) & 0x10" (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(param_8 == '\0')" ( (binary_expression "param_8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }" { (if_statement "if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;" if (parenthesized_expression "(*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0)" ( (binary_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0" (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) )))) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00227090;" goto statement_identifier ;)) (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }" if (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0))" ( (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)" ( (comma_expression "uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0" (assignment_expression "uVar7 = 1" identifier = number_literal) , (binary_expression "(PTR_DAT_0043e6b0[0x24] & 8) == 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 8)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 8" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }" { (expression_statement "pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);" (assignment_expression "pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" identifier = (pointer_expression "*(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" * (cast_expression "(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" ( (binary_expression "**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0" (pointer_expression "**(long **)(PTR_DAT_0043e6b0 + 0x18)" * (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }" if (parenthesized_expression "(pcVar4 == FUN_001b1290)" ( (binary_expression "pcVar4 == FUN_001b1290" identifier == identifier) )) (compound_statement "{\n            uVar7 = FUN_001f4a70();\n          }" { (expression_statement "uVar7 = FUN_001f4a70();" (assignment_expression "uVar7 = FUN_001f4a70()" identifier = (call_expression "FUN_001f4a70()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n            uVar7 = (*pcVar4)();\n          }" else (compound_statement "{\n            uVar7 = (*pcVar4)();\n          }" { (expression_statement "uVar7 = (*pcVar4)();" (assignment_expression "uVar7 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) }))) })) }) (else_clause "else {\n        uVar7 = 1;\n      }" else (compound_statement "{\n        uVar7 = 1;\n      }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) }))) (expression_statement "cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);" (assignment_expression "cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7)" identifier = (call_expression "FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7)" identifier (argument_list "(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return (size_t *)0xffffffffffffffff;\n      }" { (return_statement "return (size_t *)0xffffffffffffffff;" return (cast_expression "(size_t *)0xffffffffffffffff" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }))) })) (expression_statement "psVar14 = *(size_t **)(param_1 + 0x10);" (assignment_expression "psVar14 = *(size_t **)(param_1 + 0x10)" identifier = (pointer_expression "*(size_t **)(param_1 + 0x10)" * (cast_expression "(size_t **)(param_1 + 0x10)" ( (type_descriptor "size_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "psVar11 = psVar14;" (assignment_expression "psVar11 = psVar14" identifier = identifier) ;) (if_statement "if (uVar20 != 0) {\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }" { (expression_statement "psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);" (assignment_expression "psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20)" identifier = (cast_expression "(size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar20 - 1) + (long)psVar14 & -uVar20)" ( (binary_expression "(uVar20 - 1) + (long)psVar14 & -uVar20" (binary_expression "(uVar20 - 1) + (long)psVar14" (parenthesized_expression "(uVar20 - 1)" ( (binary_expression "uVar20 - 1" identifier - number_literal) )) + (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) & (unary_expression "-uVar20" - identifier)) )))) ;) })) (if_statement "if ((*(byte *)(param_1 + 0x20) & 2) != 0) {\n                    \n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 2) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x20) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x20) & 2" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" { (expression_statement "FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child")" identifier (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""set_current_data_size_for_child"" " string_content ") ))) ;) })) (expression_statement "*(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;" (assignment_expression "*(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10" (pointer_expression "*(ulong *)(param_1 + 0x10)" * (cast_expression "(ulong *)(param_1 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "(long)psVar11 + uVar10" (cast_expression "(long)psVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier)) ;) (if_statement "if (((bVar26 & 1) == 0) && (param_8 == '\0')) {\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }" if (parenthesized_expression "(((bVar26 & 1) == 0) && (param_8 == '\0'))" ( (binary_expression "((bVar26 & 1) == 0) && (param_8 == '\0')" (parenthesized_expression "((bVar26 & 1) == 0)" ( (binary_expression "(bVar26 & 1) == 0" (parenthesized_expression "(bVar26 & 1)" ( (binary_expression "bVar26 & 1" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(param_8 == '\0')" ( (binary_expression "param_8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }" { (if_statement "if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }" if (parenthesized_expression "((uVar23 & 4) == 0)" ( (binary_expression "(uVar23 & 4) == 0" (parenthesized_expression "(uVar23 & 4)" ( (binary_expression "uVar23 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }" { (if_statement "if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;" if (parenthesized_expression "((long)psVar11 <= (long)psVar14)" ( (binary_expression "(long)psVar11 <= (long)psVar14" (cast_expression "(long)psVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) <= (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (goto_statement "goto LAB_00226aaa;" goto statement_identifier ;)) (labeled_statement "LAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;" statement_identifier : (if_statement "if ((bVar26 & 0x10) != 0) goto LAB_00226aba;" if (parenthesized_expression "((bVar26 & 0x10) != 0)" ( (binary_expression "(bVar26 & 0x10) != 0" (parenthesized_expression "(bVar26 & 0x10)" ( (binary_expression "bVar26 & 0x10" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00226aba;" goto statement_identifier ;))) }) (else_clause "else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }" else (compound_statement "{\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }" { (expression_statement "plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);" (assignment_expression "plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (plVar1 == (long *)0x0) goto LAB_00227090;" if (parenthesized_expression "(plVar1 == (long *)0x0)" ( (binary_expression "plVar1 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00227090;" goto statement_identifier ;)) (if_statement "if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }" if (parenthesized_expression "(*(char *)(plVar1[1] + 0xe) == '\0')" ( (binary_expression "*(char *)(plVar1[1] + 0xe) == '\0'" (pointer_expression "*(char *)(plVar1[1] + 0xe)" * (cast_expression "(char *)(plVar1[1] + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar1[1] + 0xe)" ( (binary_expression "plVar1[1] + 0xe" (subscript_expression "plVar1[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }" { (if_statement "if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }" if (parenthesized_expression "((long)psVar14 < (long)psVar11)" ( (binary_expression "(long)psVar14 < (long)psVar11" (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)psVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }" { (labeled_statement "LAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);" statement_identifier : (expression_statement "plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);" (assignment_expression "plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18)" identifier = (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) ))))) ;)) (if_statement "if (plVar1 == (long *)0x0) goto LAB_00227090;" if (parenthesized_expression "(plVar1 == (long *)0x0)" ( (binary_expression "plVar1 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00227090;" goto statement_identifier ;)) (if_statement "if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }" if (parenthesized_expression "(*(char *)(plVar1[1] + 0xe) != '\0')" ( (binary_expression "*(char *)(plVar1[1] + 0xe) != '\0'" (pointer_expression "*(char *)(plVar1[1] + 0xe)" * (cast_expression "(char *)(plVar1[1] + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar1[1] + 0xe)" ( (binary_expression "plVar1[1] + 0xe" (subscript_expression "plVar1[1]" identifier [ number_literal ]) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }" { (expression_statement "local_50 = (long)psVar11 - (long)psVar14;" (assignment_expression "local_50 = (long)psVar11 - (long)psVar14" identifier = (binary_expression "(long)psVar11 - (long)psVar14" (cast_expression "(long)psVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }" if (parenthesized_expression "(*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88))" ( (binary_expression "*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)" (pointer_expression "*(long *)(param_1 + 0x90)" * (cast_expression "(long *)(param_1 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) == (pointer_expression "*(long *)(param_1 + 0x88)" * (cast_expression "(long *)(param_1 + 0x88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) )) (compound_statement "{\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }" { (expression_statement "local_58 = psVar14;" (assignment_expression "local_58 = psVar14" identifier = identifier) ;) (expression_statement "FUN_00213c70(param_1 + 0xa8,&local_58);" (call_expression "FUN_00213c70(param_1 + 0xa8,&local_58)" identifier (argument_list "(param_1 + 0xa8,&local_58)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) , (pointer_expression "&local_58" & identifier) ))) ;) (expression_statement "bVar26 = *(byte *)(param_1 + 0xca);" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca)" identifier = (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }" else (compound_statement "{\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }" { (expression_statement "(**(code **)(*plVar1 + 0x30))(&local_78);" (call_expression "(**(code **)(*plVar1 + 0x30))(&local_78)" (parenthesized_expression "(**(code **)(*plVar1 + 0x30))" ( (pointer_expression "**(code **)(*plVar1 + 0x30)" * (pointer_expression "*(code **)(*plVar1 + 0x30)" * (cast_expression "(code **)(*plVar1 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar1 + 0x30)" ( (binary_expression "*plVar1 + 0x30" (pointer_expression "*plVar1" * identifier) + number_literal) ))))) )) (argument_list "(&local_78)" ( (pointer_expression "&local_78" & identifier) ))) ;) (expression_statement "sVar12 = FUN_002d94a0(0x58);" (assignment_expression "sVar12 = FUN_002d94a0(0x58)" identifier = (call_expression "FUN_002d94a0(0x58)" identifier (argument_list "(0x58)" ( number_literal )))) ;) (expression_statement "FUN_001ffa20(sVar12,&local_78,1);" (call_expression "FUN_001ffa20(sVar12,&local_78,1)" identifier (argument_list "(sVar12,&local_78,1)" ( identifier , (pointer_expression "&local_78" & identifier) , number_literal ))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_58 = (size_t *)0xffffffff;" (assignment_expression "local_58 = (size_t *)0xffffffff" identifier = (cast_expression "(size_t *)0xffffffff" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_48 = sVar12;" (assignment_expression "local_48 = sVar12" identifier = identifier) ;) (expression_statement "FUN_0020d8b0(param_1 + 0x88,&local_58);" (call_expression "FUN_0020d8b0(param_1 + 0x88,&local_58)" identifier (argument_list "(param_1 + 0x88,&local_58)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) , (pointer_expression "&local_58" & identifier) ))) ;) (if_statement "if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }" if (parenthesized_expression "((long *)CONCAT44(iStack_74,local_78) != &lStack_68)" ( (binary_expression "(long *)CONCAT44(iStack_74,local_78) != &lStack_68" (cast_expression "(long *)CONCAT44(iStack_74,local_78)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(iStack_74,local_78)" identifier (argument_list "(iStack_74,local_78)" ( identifier , identifier )))) != (pointer_expression "&lStack_68" & identifier)) )) (compound_statement "{\n                FUN_002dac70();\n              }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar26 = *(byte *)(param_1 + 0xca);" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca)" identifier = (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) ))))) ;) }))) })) (goto_statement "goto LAB_00226e42;" goto statement_identifier ;) })) }) (else_clause "else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }" else (compound_statement "{\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }" { (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }" if (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0))" ( (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 8) == 0)" ( (binary_expression "(PTR_DAT_0043e6b0[0x24] & 8) == 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 8)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 8" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }" { (if_statement "if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }" if (parenthesized_expression "(*(code **)(*plVar1 + 0xe0) == FUN_001b1290)" ( (binary_expression "*(code **)(*plVar1 + 0xe0) == FUN_001b1290" (pointer_expression "*(code **)(*plVar1 + 0xe0)" * (cast_expression "(code **)(*plVar1 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar1 + 0xe0)" ( (binary_expression "*plVar1 + 0xe0" (pointer_expression "*plVar1" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n            cVar8 = FUN_001f4a70();\n          }" { (expression_statement "cVar8 = FUN_001f4a70();" (assignment_expression "cVar8 = FUN_001f4a70()" identifier = (call_expression "FUN_001f4a70()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }" else (compound_statement "{\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }" { (expression_statement "cVar8 = (**(code **)(*plVar1 + 0xe0))();" (assignment_expression "cVar8 = (**(code **)(*plVar1 + 0xe0))()" identifier = (call_expression "(**(code **)(*plVar1 + 0xe0))()" (parenthesized_expression "(**(code **)(*plVar1 + 0xe0))" ( (pointer_expression "**(code **)(*plVar1 + 0xe0)" * (pointer_expression "*(code **)(*plVar1 + 0xe0)" * (cast_expression "(code **)(*plVar1 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar1 + 0xe0)" ( (binary_expression "*plVar1 + 0xe0" (pointer_expression "*plVar1" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (if_statement "if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }" if (parenthesized_expression "((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0'))" ( (binary_expression "(cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')" (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(param_2 + 0x371) == '\0')" ( (binary_expression "*(char *)(param_2 + 0x371) == '\0'" (pointer_expression "*(char *)(param_2 + 0x371)" * (cast_expression "(char *)(param_2 + 0x371)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x371)" ( (binary_expression "param_2 + 0x371" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }" { (expression_statement "bVar26 = *(byte *)(param_1 + 0xca);" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca)" identifier = (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00226a9c;" goto statement_identifier ;) })) })) (if_statement "if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }" if (parenthesized_expression "(*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8))" ( (binary_expression "*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)" (pointer_expression "*(long *)(param_1 + 0xb0)" * (cast_expression "(long *)(param_1 + 0xb0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb0)" ( (binary_expression "param_1 + 0xb0" identifier + number_literal) )))) != (pointer_expression "*(long *)(param_1 + 0xa8)" * (cast_expression "(long *)(param_1 + 0xa8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa8)" ( (binary_expression "param_1 + 0xa8" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }" { (expression_statement "FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");" (call_expression "FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section")" identifier (argument_list "("../../gold/output.cc",0x9eb,"add_input_section")" ( (string_literal ""../../gold/output.cc"" " string_content ") , number_literal , (string_literal ""add_input_section"" " string_content ") ))) ;) })) (expression_statement "bVar26 = *(byte *)(param_1 + 0xca) | 1;" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca) | 1" identifier = (binary_expression "*(byte *)(param_1 + 0xca) | 1" (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(byte *)(param_1 + 0xca) = bVar26;" (assignment_expression "*(byte *)(param_1 + 0xca) = bVar26" (pointer_expression "*(byte *)(param_1 + 0xca)" * (cast_expression "(byte *)(param_1 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xca)" ( (binary_expression "param_1 + 0xca" identifier + number_literal) )))) = identifier) ;) }))) (labeled_statement "LAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;" statement_identifier : (if_statement "if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;" if (parenthesized_expression "(((bVar26 & 0x10) != 0) || (param_8 != '\0'))" ( (binary_expression "((bVar26 & 0x10) != 0) || (param_8 != '\0')" (parenthesized_expression "((bVar26 & 0x10) != 0)" ( (binary_expression "(bVar26 & 0x10) != 0" (parenthesized_expression "(bVar26 & 0x10)" ( (binary_expression "bVar26 & 0x10" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(param_8 != '\0')" ( (binary_expression "param_8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00226aba;" goto statement_identifier ;))) }))) (if_statement "if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0))))" ( (binary_expression "(*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))" (parenthesized_expression "(*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88))" ( (binary_expression "*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)" (pointer_expression "*(long *)(param_1 + 0x90)" * (cast_expression "(long *)(param_1 + 0x90)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) == (pointer_expression "*(long *)(param_1 + 0x88)" * (cast_expression "(long *)(param_1 + 0x88)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x88)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) ))))) )) && (parenthesized_expression "(((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))" ( (parenthesized_expression "((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0))" ( (binary_expression "(*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)" (binary_expression "(*(byte *)(param_1 + 0xc9) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0xc9) & 4)" ( (binary_expression "*(byte *)(param_1 + 0xc9) & 4" (pointer_expression "*(byte *)(param_1 + 0xc9)" * (cast_expression "(byte *)(param_1 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc9)" ( (binary_expression "param_1 + 0xc9" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "((*(byte *)(param_1 + 0xc9) & 8) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0xc9) & 8) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0xc9) & 8)" ( (binary_expression "*(byte *)(param_1 + 0xc9) & 8" (pointer_expression "*(byte *)(param_1 + 0xc9)" * (cast_expression "(byte *)(param_1 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc9)" ( (binary_expression "param_1 + 0xc9" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }" { (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;" if (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00227060;" goto statement_identifier ;)) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }" { (if_statement "if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }" if (parenthesized_expression "(*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0)" ( (binary_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0" (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) )))) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }" { (labeled_statement "LAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0017c650("../../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 ") ))) ;)) })) (if_statement "if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }" if (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 8) == 0)" ( (binary_expression "(PTR_DAT_0043e6b0[0x24] & 8) == 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 8)" ( (binary_expression "PTR_DAT_0043e6b0[0x24] & 8" (subscript_expression "PTR_DAT_0043e6b0[0x24]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }" { (expression_statement "pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);" (assignment_expression "pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" identifier = (pointer_expression "*(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" * (cast_expression "(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" ( (binary_expression "**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0" (pointer_expression "**(long **)(PTR_DAT_0043e6b0 + 0x18)" * (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" * (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x18" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }" if (parenthesized_expression "(pcVar4 == FUN_001b1290)" ( (binary_expression "pcVar4 == FUN_001b1290" identifier == identifier) )) (compound_statement "{\n            cVar8 = FUN_001f4a70();\n          }" { (expression_statement "cVar8 = FUN_001f4a70();" (assignment_expression "cVar8 = FUN_001f4a70()" identifier = (call_expression "FUN_001f4a70()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n            cVar8 = (*pcVar4)();\n          }" else (compound_statement "{\n            cVar8 = (*pcVar4)();\n          }" { (expression_statement "cVar8 = (*pcVar4)();" (assignment_expression "cVar8 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }" if (parenthesized_expression "((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0'))" ( (binary_expression "(cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')" (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(param_2 + 0x371) == '\0')" ( (binary_expression "*(char *)(param_2 + 0x371) == '\0'" (pointer_expression "*(char *)(param_2 + 0x371)" * (cast_expression "(char *)(param_2 + 0x371)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x371)" ( (binary_expression "param_2 + 0x371" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            return psVar11;\n          }" { (return_statement "return psVar11;" return identifier ;) })) })) })) })) }) (else_clause "else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }" else (compound_statement "{\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }" { (labeled_statement "LAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;" statement_identifier : (if_statement "if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;" if (parenthesized_expression "(((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0))" ( (binary_expression "((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)" (parenthesized_expression "((long)psVar11 <= (long)psVar14)" ( (binary_expression "(long)psVar11 <= (long)psVar14" (cast_expression "(long)psVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) <= (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) || (parenthesized_expression "((bVar26 & 1) != 0)" ( (binary_expression "(bVar26 & 1) != 0" (parenthesized_expression "(bVar26 & 1)" ( (binary_expression "bVar26 & 1" identifier & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_00226aaa;" goto statement_identifier ;))) (if_statement "if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }" if (parenthesized_expression "(param_8 == '\0')" ( (binary_expression "param_8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }" { (if_statement "if ((uVar23 & 4) != 0) goto LAB_00226d8d;" if (parenthesized_expression "((uVar23 & 4) != 0)" ( (binary_expression "(uVar23 & 4) != 0" (parenthesized_expression "(uVar23 & 4)" ( (binary_expression "uVar23 & 4" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00226d8d;" goto statement_identifier ;)) (goto_statement "goto LAB_00226e42;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00226aba:\n  lVar18 = 0;" statement_identifier : (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;)) (if_statement "if (uVar20 != 0) {\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }" { (for_statement "for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }" for ( ; (binary_expression "(uVar20 >> lVar18 & 1) == 0" (parenthesized_expression "(uVar20 >> lVar18 & 1)" ( (binary_expression "uVar20 >> lVar18 & 1" (binary_expression "uVar20 >> lVar18" identifier >> identifier) & number_literal) )) == number_literal) ; (assignment_expression "lVar18 = lVar18 + 1" identifier = (binary_expression "lVar18 + 1" identifier + number_literal)) ) (compound_statement "{\n    }" { })) })) (expression_statement "iStack_74 = (int)lVar18;" (assignment_expression "iStack_74 = (int)lVar18" identifier = (cast_expression "(int)lVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (uVar20 == 0) {\n    iStack_74 = -1;\n  }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    iStack_74 = -1;\n  }" { (expression_statement "iStack_74 = -1;" (assignment_expression "iStack_74 = -1" identifier = number_literal) ;) })) (expression_statement "iStack_60 = 0;" (assignment_expression "iStack_60 = 0" identifier = number_literal) ;) (expression_statement "iStack_74 = iStack_74 + 1;" (assignment_expression "iStack_74 = iStack_74 + 1" identifier = (binary_expression "iStack_74 + 1" identifier + number_literal)) ;) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" identifier = identifier) ;) (if_statement "if (param_4 + 4 < 4) {\n                    \n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }" if (parenthesized_expression "(param_4 + 4 < 4)" ( (binary_expression "param_4 + 4 < 4" (binary_expression "param_4 + 4" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }" { (expression_statement "FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");" (call_expression "FUN_0017c650("../../gold/output.h",0xe9a,"Input_section")" identifier (argument_list "("../../gold/output.h",0xe9a,"Input_section")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""Input_section"" " string_content ") ))) ;) })) (expression_statement "uStack_70 = uVar10;" (assignment_expression "uStack_70 = uVar10" identifier = identifier) ;) (expression_statement "lStack_68 = param_3;" (assignment_expression "lStack_68 = param_3" identifier = identifier) ;) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_00227060:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00227060:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_00227060:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0017c650("../../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 (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;" if (parenthesized_expression "(*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0)" ( (binary_expression "*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0" (pointer_expression "*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8)" * (cast_expression "(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00226b96;" goto statement_identifier ;)) (expression_statement "psVar14 = &local_48;" (assignment_expression "psVar14 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "local_58 = psVar14;" (assignment_expression "local_58 = psVar14" identifier = identifier) ;) (expression_statement "sVar12 = strlen((char *)param_5);" (assignment_expression "sVar12 = strlen((char *)param_5)" identifier = (call_expression "strlen((char *)param_5)" identifier (argument_list "((char *)param_5)" ( (cast_expression "(char *)param_5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "sStack_80 = sVar12;" (assignment_expression "sStack_80 = sVar12" identifier = identifier) ;) (if_statement "if (sVar12 < 0x10) {\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }\n  else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }" if (parenthesized_expression "(sVar12 < 0x10)" ( (binary_expression "sVar12 < 0x10" identifier < number_literal) )) (compound_statement "{\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }" { (if_statement "if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;" if (parenthesized_expression "(sVar12 == 1)" ( (binary_expression "sVar12 == 1" identifier == number_literal) )) (compound_statement "{\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }" { (expression_statement "local_48 = CONCAT71(local_48._1_7_,*param_5);" (assignment_expression "local_48 = CONCAT71(local_48._1_7_,*param_5)" identifier = (call_expression "CONCAT71(local_48._1_7_,*param_5)" identifier (argument_list "(local_48._1_7_,*param_5)" ( (field_expression "local_48._1_7_" identifier . field_identifier) , (pointer_expression "*param_5" * identifier) )))) ;) }) (else_clause "else if (sVar12 != 0) goto LAB_00226f36;" else (if_statement "if (sVar12 != 0) goto LAB_00226f36;" if (parenthesized_expression "(sVar12 != 0)" ( (binary_expression "sVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00226f36;" goto statement_identifier ;)))) }) (else_clause "else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }" else (compound_statement "{\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }" { (expression_statement "psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);" (assignment_expression "psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0)" identifier = (cast_expression "(size_t *)FUN_002e15a0(&local_58,&sStack_80,0)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002e15a0(&local_58,&sStack_80,0)" identifier (argument_list "(&local_58,&sStack_80,0)" ( (pointer_expression "&local_58" & identifier) , (pointer_expression "&sStack_80" & identifier) , number_literal ))))) ;) (expression_statement "local_48 = sStack_80;" (assignment_expression "local_48 = sStack_80" identifier = identifier) ;) (expression_statement "local_58 = psVar14;" (assignment_expression "local_58 = psVar14" identifier = identifier) ;) (labeled_statement "LAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);" statement_identifier : (expression_statement "memcpy(psVar14,param_5,sVar12);" (call_expression "memcpy(psVar14,param_5,sVar12)" identifier (argument_list "(psVar14,param_5,sVar12)" ( identifier , identifier , identifier ))) ;)) (expression_statement "psVar14 = local_58;" (assignment_expression "psVar14 = local_58" identifier = identifier) ;) }))) (expression_statement "*(undefined1 *)((long)psVar14 + sStack_80) = 0;" (assignment_expression "*(undefined1 *)((long)psVar14 + sStack_80) = 0" (pointer_expression "*(undefined1 *)((long)psVar14 + sStack_80)" * (cast_expression "(undefined1 *)((long)psVar14 + sStack_80)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)psVar14 + sStack_80)" ( (binary_expression "(long)psVar14 + sStack_80" (cast_expression "(long)psVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_50 = sStack_80;" (assignment_expression "local_50 = sStack_80" identifier = identifier) ;) (expression_statement "iVar9 = FUN_001ac380(param_2,&local_58);" (assignment_expression "iVar9 = FUN_001ac380(param_2,&local_58)" identifier = (call_expression "FUN_001ac380(param_2,&local_58)" identifier (argument_list "(param_2,&local_58)" ( identifier , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (local_58 != &local_48) {\n    FUN_002dac70();\n  }" if (parenthesized_expression "(local_58 != &local_48)" ( (binary_expression "local_58 != &local_48" identifier != (pointer_expression "&local_48" & identifier)) )) (compound_statement "{\n    FUN_002dac70();\n  }" { (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (iVar9 != 0) {\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }" { (expression_statement "*(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;" (assignment_expression "*(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2" (pointer_expression "*(byte *)(param_1 + 0xc9)" * (cast_expression "(byte *)(param_1 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc9)" ( (binary_expression "param_1 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(param_1 + 0xc9) | 2" (pointer_expression "*(byte *)(param_1 + 0xc9)" * (cast_expression "(byte *)(param_1 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc9)" ( (binary_expression "param_1 + 0xc9" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "iStack_60 = iVar9;" (assignment_expression "iStack_60 = iVar9" identifier = identifier) ;) })) (labeled_statement "LAB_00226b96:\n  puVar3 = *(undefined8 **)(param_1 + 0x90);" statement_identifier : (expression_statement "puVar3 = *(undefined8 **)(param_1 + 0x90);" (assignment_expression "puVar3 = *(undefined8 **)(param_1 + 0x90)" identifier = (pointer_expression "*(undefined8 **)(param_1 + 0x90)" * (cast_expression "(undefined8 **)(param_1 + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) ))))) ;)) (if_statement "if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }" if (parenthesized_expression "(puVar3 != *(undefined8 **)(param_1 + 0x98))" ( (binary_expression "puVar3 != *(undefined8 **)(param_1 + 0x98)" identifier != (pointer_expression "*(undefined8 **)(param_1 + 0x98)" * (cast_expression "(undefined8 **)(param_1 + 0x98)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x98)" ( (binary_expression "param_1 + 0x98" identifier + number_literal) ))))) )) (compound_statement "{\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }" { (expression_statement "*puVar3 = CONCAT44(iStack_74,local_78);" (assignment_expression "*puVar3 = CONCAT44(iStack_74,local_78)" (pointer_expression "*puVar3" * identifier) = (call_expression "CONCAT44(iStack_74,local_78)" identifier (argument_list "(iStack_74,local_78)" ( identifier , identifier )))) ;) (expression_statement "puVar3[1] = uStack_70;" (assignment_expression "puVar3[1] = uStack_70" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[2] = lStack_68;" (assignment_expression "puVar3[2] = lStack_68" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[3] = CONCAT44(uStack_5c,iStack_60);" (assignment_expression "puVar3[3] = CONCAT44(uStack_5c,iStack_60)" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = (call_expression "CONCAT44(uStack_5c,iStack_60)" identifier (argument_list "(uStack_5c,iStack_60)" ( identifier , identifier )))) ;) (expression_statement "*(undefined8 **)(param_1 + 0x90) = puVar3 + 4;" (assignment_expression "*(undefined8 **)(param_1 + 0x90) = puVar3 + 4" (pointer_expression "*(undefined8 **)(param_1 + 0x90)" * (cast_expression "(undefined8 **)(param_1 + 0x90)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) )))) = (binary_expression "puVar3 + 4" identifier + number_literal)) ;) (return_statement "return psVar11;" return identifier ;) })) (expression_statement "FUN_0020a990(param_1 + 0x88,puVar3,&local_78);" (call_expression "FUN_0020a990(param_1 + 0x88,puVar3,&local_78)" identifier (argument_list "(param_1 + 0x88,puVar3,&local_78)" ( (binary_expression "param_1 + 0x88" identifier + number_literal) , identifier , (pointer_expression "&local_78" & identifier) ))) ;) (return_statement "return psVar11;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) 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 (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & IDENT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT)) ;) (if_statement if (parenthesized_expression ( 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 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , LIT ))))) ;) (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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) & (unary_expression - IDENT)) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) <= (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (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 (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 ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))) != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == 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 { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (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 ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (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) )))) = IDENT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;))) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) && (parenthesized_expression ( (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (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 { (return_statement return IDENT ;) })) })) })) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) <= (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (for_statement for ( ; (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> IDENT) & LIT) )) == LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , (pointer_expression * IDENT) )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) ))) ;) (return_statement return IDENT ;) })))
(function_definition "size_t * FUN_00226940(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)\n\n{\n  long *plVar1;\n  undefined4 uVar2;\n  undefined8 *puVar3;\n  code *pcVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined1 uVar7;\n  char cVar8;\n  int iVar9;\n  ulong uVar10;\n  size_t *psVar11;\n  size_t sVar12;\n  undefined8 uVar13;\n  size_t *psVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  ulong uVar19;\n  ulong uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  uint uVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  size_t sStack_80;\n  uint local_78;\n  int iStack_74;\n  ulong uStack_70;\n  long lStack_68;\n  int iStack_60;\n  undefined4 uStack_5c;\n  size_t *local_58;\n  size_t local_50;\n  size_t local_48;\n  undefined4 local_40;\n  \n  bVar26 = 0;\n  lVar18 = *param_6;\n  uVar19 = (ulong)*(uint *)(lVar18 + 0x20);\n  uVar10 = (ulong)*(uint *)(lVar18 + 0x14);\n  lVar17 = *(long *)(param_3 + 0x48);\n  if (lVar17 == 0) {\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  uVar20 = uVar19;\n  if (uVar5 != 0) {\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }\n  bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;\n  bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;\n  if (bVar24) {\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }\n  lVar17 = 0xb;\n  uVar23 = *(uint *)(lVar18 + 8);\n  uVar2 = *(undefined4 *)(lVar18 + 0x24);\n  pbVar21 = param_5;\n  pbVar22 = (byte *)".debug_str";\n  do {\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  } while (bVar25);\n  if ((!bVar24 && !bVar25) == bVar24) {\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }\n  FUN_001f5d70(param_1,uVar23);\n  if ((*(byte *)(param_1 + 0xca) & 2) == 0) {\n    FUN_001f48e0();\n  }\n  if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;\n  while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }\n  psVar14 = *(size_t **)(param_1 + 0x10);\n  psVar11 = psVar14;\n  if (uVar20 != 0) {\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }\n  if ((*(byte *)(param_1 + 0x20) & 2) != 0) {\n                    \n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  *(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;\n  if (((bVar26 & 1) == 0) && (param_8 == '\0')) {\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }\nLAB_00226aba:\n  lVar18 = 0;\n  if (uVar20 != 0) {\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }\n  iStack_74 = (int)lVar18;\n  if (uVar20 == 0) {\n    iStack_74 = -1;\n  }\n  iStack_60 = 0;\n  iStack_74 = iStack_74 + 1;\n  local_78 = param_4;\n  if (param_4 + 4 < 4) {\n                    \n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }\n  uStack_70 = uVar10;\n  lStack_68 = param_3;\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_00227060:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;\n  psVar14 = &local_48;\n  local_58 = psVar14;\n  sVar12 = strlen((char *)param_5);\n  sStack_80 = sVar12;\n  if (sVar12 < 0x10) {\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }\n  else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }\n  *(undefined1 *)((long)psVar14 + sStack_80) = 0;\n  local_50 = sStack_80;\n                    \n  iVar9 = FUN_001ac380(param_2,&local_58);\n  if (local_58 != &local_48) {\n    FUN_002dac70();\n  }\n  if (iVar9 != 0) {\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }\nLAB_00226b96:\n  puVar3 = *(undefined8 **)(param_1 + 0x90);\n  if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }\n  FUN_0020a990(param_1 + 0x88,puVar3,&local_78);\n  return psVar11;\n}" (primitive_type "size_t") (pointer_declarator "* FUN_00226940(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)" (* "*") (function_declarator "FUN_00226940(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)" (identifier "FUN_00226940") (parameter_list "(long param_1,long param_2,long param_3,uint param_4,byte *param_5,\n                     long *param_6,int param_7,char param_8)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "byte *param_5" (type_identifier "byte") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "long *param_6" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "char param_8" (primitive_type "char") (identifier "param_8")) () ")")))) (compound_statement "{\n  long *plVar1;\n  undefined4 uVar2;\n  undefined8 *puVar3;\n  code *pcVar4;\n  ulong uVar5;\n  long lVar6;\n  undefined1 uVar7;\n  char cVar8;\n  int iVar9;\n  ulong uVar10;\n  size_t *psVar11;\n  size_t sVar12;\n  undefined8 uVar13;\n  size_t *psVar14;\n  long lVar15;\n  long lVar16;\n  long lVar17;\n  long lVar18;\n  ulong uVar19;\n  ulong uVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  uint uVar23;\n  bool bVar24;\n  bool bVar25;\n  byte bVar26;\n  size_t sStack_80;\n  uint local_78;\n  int iStack_74;\n  ulong uStack_70;\n  long lStack_68;\n  int iStack_60;\n  undefined4 uStack_5c;\n  size_t *local_58;\n  size_t local_50;\n  size_t local_48;\n  undefined4 local_40;\n  \n  bVar26 = 0;\n  lVar18 = *param_6;\n  uVar19 = (ulong)*(uint *)(lVar18 + 0x20);\n  uVar10 = (ulong)*(uint *)(lVar18 + 0x14);\n  lVar17 = *(long *)(param_3 + 0x48);\n  if (lVar17 == 0) {\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  uVar20 = uVar19;\n  if (uVar5 != 0) {\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }\n  bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;\n  bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;\n  if (bVar24) {\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }\n  lVar17 = 0xb;\n  uVar23 = *(uint *)(lVar18 + 8);\n  uVar2 = *(undefined4 *)(lVar18 + 0x24);\n  pbVar21 = param_5;\n  pbVar22 = (byte *)".debug_str";\n  do {\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  } while (bVar25);\n  if ((!bVar24 && !bVar25) == bVar24) {\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }\n  FUN_001f5d70(param_1,uVar23);\n  if ((*(byte *)(param_1 + 0xca) & 2) == 0) {\n    FUN_001f48e0();\n  }\n  if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;\n  while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }\n  psVar14 = *(size_t **)(param_1 + 0x10);\n  psVar11 = psVar14;\n  if (uVar20 != 0) {\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }\n  if ((*(byte *)(param_1 + 0x20) & 2) != 0) {\n                    \n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }\n  *(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;\n  if (((bVar26 & 1) == 0) && (param_8 == '\0')) {\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }\nLAB_00226aba:\n  lVar18 = 0;\n  if (uVar20 != 0) {\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }\n  iStack_74 = (int)lVar18;\n  if (uVar20 == 0) {\n    iStack_74 = -1;\n  }\n  iStack_60 = 0;\n  iStack_74 = iStack_74 + 1;\n  local_78 = param_4;\n  if (param_4 + 4 < 4) {\n                    \n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }\n  uStack_70 = uVar10;\n  lStack_68 = param_3;\n  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_00227060:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  if (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;\n  psVar14 = &local_48;\n  local_58 = psVar14;\n  sVar12 = strlen((char *)param_5);\n  sStack_80 = sVar12;\n  if (sVar12 < 0x10) {\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }\n  else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }\n  *(undefined1 *)((long)psVar14 + sStack_80) = 0;\n  local_50 = sStack_80;\n                    \n  iVar9 = FUN_001ac380(param_2,&local_58);\n  if (local_58 != &local_48) {\n    FUN_002dac70();\n  }\n  if (iVar9 != 0) {\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }\nLAB_00226b96:\n  puVar3 = *(undefined8 **)(param_1 + 0x90);\n  if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }\n  FUN_0020a990(param_1 + 0x88,puVar3,&local_78);\n  return psVar11;\n}" ({ "{") (declaration "long *plVar1;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar1" (* "*") (identifier "plVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "undefined1 uVar7;" (type_identifier "undefined1") (identifier "uVar7") (; ";")) (declaration "char cVar8;" (primitive_type "char") (identifier "cVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "size_t *psVar11;" (primitive_type "size_t") (pointer_declarator "*psVar11" (* "*") (identifier "psVar11")) (; ";")) (declaration "size_t sVar12;" (primitive_type "size_t") (identifier "sVar12") (; ";")) (declaration "undefined8 uVar13;" (type_identifier "undefined8") (identifier "uVar13") (; ";")) (declaration "size_t *psVar14;" (primitive_type "size_t") (pointer_declarator "*psVar14" (* "*") (identifier "psVar14")) (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "long lVar16;" (sized_type_specifier "long" (long "long")) (identifier "lVar16") (; ";")) (declaration "long lVar17;" (sized_type_specifier "long" (long "long")) (identifier "lVar17") (; ";")) (declaration "long lVar18;" (sized_type_specifier "long" (long "long")) (identifier "lVar18") (; ";")) (declaration "ulong uVar19;" (type_identifier "ulong") (identifier "uVar19") (; ";")) (declaration "ulong uVar20;" (type_identifier "ulong") (identifier "uVar20") (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "byte *pbVar22;" (type_identifier "byte") (pointer_declarator "*pbVar22" (* "*") (identifier "pbVar22")) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "bool bVar24;" (primitive_type "bool") (identifier "bVar24") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "byte bVar26;" (type_identifier "byte") (identifier "bVar26") (; ";")) (declaration "size_t sStack_80;" (primitive_type "size_t") (identifier "sStack_80") (; ";")) (declaration "uint local_78;" (type_identifier "uint") (identifier "local_78") (; ";")) (declaration "int iStack_74;" (primitive_type "int") (identifier "iStack_74") (; ";")) (declaration "ulong uStack_70;" (type_identifier "ulong") (identifier "uStack_70") (; ";")) (declaration "long lStack_68;" (sized_type_specifier "long" (long "long")) (identifier "lStack_68") (; ";")) (declaration "int iStack_60;" (primitive_type "int") (identifier "iStack_60") (; ";")) (declaration "undefined4 uStack_5c;" (type_identifier "undefined4") (identifier "uStack_5c") (; ";")) (declaration "size_t *local_58;" (primitive_type "size_t") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "size_t local_50;" (primitive_type "size_t") (identifier "local_50") (; ";")) (declaration "size_t local_48;" (primitive_type "size_t") (identifier "local_48") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (expression_statement "bVar26 = 0;" (assignment_expression "bVar26 = 0" (identifier "bVar26") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar18 = *param_6;" (assignment_expression "lVar18 = *param_6" (identifier "lVar18") (= "=") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) (; ";")) (expression_statement "uVar19 = (ulong)*(uint *)(lVar18 + 0x20);" (assignment_expression "uVar19 = (ulong)*(uint *)(lVar18 + 0x20)" (identifier "uVar19") (= "=") (binary_expression "(ulong)*(uint *)(lVar18 + 0x20)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(lVar18 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 0x20)" (( "(") (binary_expression "lVar18 + 0x20" (identifier "lVar18") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar10 = (ulong)*(uint *)(lVar18 + 0x14);" (assignment_expression "uVar10 = (ulong)*(uint *)(lVar18 + 0x14)" (identifier "uVar10") (= "=") (binary_expression "(ulong)*(uint *)(lVar18 + 0x14)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(lVar18 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 0x14)" (( "(") (binary_expression "lVar18 + 0x14" (identifier "lVar18") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "lVar17 = *(long *)(param_3 + 0x48);" (assignment_expression "lVar17 = *(long *)(param_3 + 0x48)" (identifier "lVar17") (= "=") (pointer_expression "*(long *)(param_3 + 0x48)" (* "*") (cast_expression "(long *)(param_3 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x48)" (( "(") (binary_expression "param_3 + 0x48" (identifier "param_3") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (if_statement "if (lVar17 == 0) {\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }\n  else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;\n  }" ({ "{") (labeled_statement "LAB_002269ca:\n    uVar5 = uVar19 - 1 & uVar19;" (statement_identifier "LAB_002269ca") (: ":") (expression_statement "uVar5 = uVar19 - 1 & uVar19;" (assignment_expression "uVar5 = uVar19 - 1 & uVar19" (identifier "uVar5") (= "=") (binary_expression "uVar19 - 1 & uVar19" (binary_expression "uVar19 - 1" (identifier "uVar19") (- "-") (number_literal "1")) (& "&") (identifier "uVar19"))) (; ";"))) (} "}")) (else_clause "else {\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }" (else "else") (compound_statement "{\n    lVar6 = *(long *)(lVar17 + 0x10);\n    lVar15 = lVar17 + 8;\n    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;\n    do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);\nLAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;\n    uVar10 = *(ulong *)(lVar16 + 0x28);\n    uVar19 = *(ulong *)(lVar16 + 0x38);\n    uVar5 = uVar19 - 1 & uVar19;\n  }" ({ "{") (expression_statement "lVar6 = *(long *)(lVar17 + 0x10);" (assignment_expression "lVar6 = *(long *)(lVar17 + 0x10)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(lVar17 + 0x10)" (* "*") (cast_expression "(long *)(lVar17 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar17 + 0x10)" (( "(") (binary_expression "lVar17 + 0x10" (identifier "lVar17") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "lVar15 = lVar17 + 8;" (assignment_expression "lVar15 = lVar17 + 8" (identifier "lVar15") (= "=") (binary_expression "lVar17 + 8" (identifier "lVar17") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;" (if "if") (parenthesized_expression "(*(long *)(lVar17 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(lVar17 + 0x10) == 0" (pointer_expression "*(long *)(lVar17 + 0x10)" (* "*") (cast_expression "(long *)(lVar17 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar17 + 0x10)" (( "(") (binary_expression "lVar17 + 0x10" (identifier "lVar17") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002269ca;" (goto "goto") (statement_identifier "LAB_002269ca") (; ";"))) (do_statement "do {\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    } while (*plVar1 != 0);" (do "do") (compound_statement "{\n      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }\n      plVar1 = (long *)(lVar16 + 0x18);\n      lVar6 = *plVar1;\n      lVar16 = lVar15;\n    }" ({ "{") (while_statement "while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }" (while "while") (parenthesized_expression "(lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20))" (( "(") (comma_expression "lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)" (assignment_expression "lVar16 = lVar6" (identifier "lVar16") (= "=") (identifier "lVar6")) (, ",") (binary_expression "param_4 <= *(uint *)(lVar16 + 0x20)" (identifier "param_4") (<= "<=") (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")")))))) () ")")) (compound_statement "{\n        lVar6 = *(long *)(lVar16 + 0x10);\n        lVar15 = lVar16;\n        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;\n      }" ({ "{") (expression_statement "lVar6 = *(long *)(lVar16 + 0x10);" (assignment_expression "lVar6 = *(long *)(lVar16 + 0x10)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(lVar16 + 0x10)" (* "*") (cast_expression "(long *)(lVar16 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x10)" (( "(") (binary_expression "lVar16 + 0x10" (identifier "lVar16") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "lVar15 = lVar16;" (assignment_expression "lVar15 = lVar16" (identifier "lVar15") (= "=") (identifier "lVar16")) (; ";")) (if_statement "if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;" (if "if") (parenthesized_expression "(*(long *)(lVar16 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(lVar16 + 0x10) == 0" (pointer_expression "*(long *)(lVar16 + 0x10)" (* "*") (cast_expression "(long *)(lVar16 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x10)" (( "(") (binary_expression "lVar16 + 0x10" (identifier "lVar16") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002269bb;" (goto "goto") (statement_identifier "LAB_002269bb") (; ";"))) (} "}"))) (expression_statement "plVar1 = (long *)(lVar16 + 0x18);" (assignment_expression "plVar1 = (long *)(lVar16 + 0x18)" (identifier "plVar1") (= "=") (cast_expression "(long *)(lVar16 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x18)" (( "(") (binary_expression "lVar16 + 0x18" (identifier "lVar16") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "lVar6 = *plVar1;" (assignment_expression "lVar6 = *plVar1" (identifier "lVar6") (= "=") (pointer_expression "*plVar1" (* "*") (identifier "plVar1"))) (; ";")) (expression_statement "lVar16 = lVar15;" (assignment_expression "lVar16 = lVar15" (identifier "lVar16") (= "=") (identifier "lVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*plVar1 != 0)" (( "(") (binary_expression "*plVar1 != 0" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_002269bb:\n    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;" (statement_identifier "LAB_002269bb") (: ":") (if_statement "if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;" (if "if") (parenthesized_expression "((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20)))" (( "(") (binary_expression "(lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))" (parenthesized_expression "(lVar17 + 8 == lVar16)" (( "(") (binary_expression "lVar17 + 8 == lVar16" (binary_expression "lVar17 + 8" (identifier "lVar17") (+ "+") (number_literal "8")) (== "==") (identifier "lVar16")) () ")")) (|| "||") (parenthesized_expression "(param_4 < *(uint *)(lVar16 + 0x20))" (( "(") (binary_expression "param_4 < *(uint *)(lVar16 + 0x20)" (identifier "param_4") (< "<") (pointer_expression "*(uint *)(lVar16 + 0x20)" (* "*") (cast_expression "(uint *)(lVar16 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x20)" (( "(") (binary_expression "lVar16 + 0x20" (identifier "lVar16") (+ "+") (number_literal "0x20")) () ")"))))) () ")"))) () ")")) (goto_statement "goto LAB_002269ca;" (goto "goto") (statement_identifier "LAB_002269ca") (; ";")))) (expression_statement "uVar10 = *(ulong *)(lVar16 + 0x28);" (assignment_expression "uVar10 = *(ulong *)(lVar16 + 0x28)" (identifier "uVar10") (= "=") (pointer_expression "*(ulong *)(lVar16 + 0x28)" (* "*") (cast_expression "(ulong *)(lVar16 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x28)" (( "(") (binary_expression "lVar16 + 0x28" (identifier "lVar16") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar19 = *(ulong *)(lVar16 + 0x38);" (assignment_expression "uVar19 = *(ulong *)(lVar16 + 0x38)" (identifier "uVar19") (= "=") (pointer_expression "*(ulong *)(lVar16 + 0x38)" (* "*") (cast_expression "(ulong *)(lVar16 + 0x38)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar16 + 0x38)" (( "(") (binary_expression "lVar16 + 0x38" (identifier "lVar16") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "uVar5 = uVar19 - 1 & uVar19;" (assignment_expression "uVar5 = uVar19 - 1 & uVar19" (identifier "uVar5") (= "=") (binary_expression "uVar19 - 1 & uVar19" (binary_expression "uVar19 - 1" (identifier "uVar19") (- "-") (number_literal "1")) (& "&") (identifier "uVar19"))) (; ";")) (} "}")))) (expression_statement "uVar20 = uVar19;" (assignment_expression "uVar20 = uVar19" (identifier "uVar20") (= "=") (identifier "uVar19")) (; ";")) (if_statement "if (uVar5 != 0) {\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar13 = gettext("invalid alignment %lu for section \"%s\"");\n    uVar20 = 1;\n    FUN_001bd150(param_3,uVar13,uVar19,param_5);\n    lVar18 = *param_6;\n  }" ({ "{") (expression_statement "uVar13 = gettext("invalid alignment %lu for section \"%s\"");" (assignment_expression "uVar13 = gettext("invalid alignment %lu for section \"%s\"")" (identifier "uVar13") (= "=") (call_expression "gettext("invalid alignment %lu for section \"%s\"")" (identifier "gettext") (argument_list "("invalid alignment %lu for section \"%s\"")" (( "(") (string_literal ""invalid alignment %lu for section \"%s\""" (" """) (string_content "invalid alignment %lu for section ") (escape_sequence "\"") (string_content "%s") (escape_sequence "\"") (" """)) () ")")))) (; ";")) (expression_statement "uVar20 = 1;" (assignment_expression "uVar20 = 1" (identifier "uVar20") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_001bd150(param_3,uVar13,uVar19,param_5);" (call_expression "FUN_001bd150(param_3,uVar13,uVar19,param_5)" (identifier "FUN_001bd150") (argument_list "(param_3,uVar13,uVar19,param_5)" (( "(") (identifier "param_3") (, ",") (identifier "uVar13") (, ",") (identifier "uVar19") (, ",") (identifier "param_5") () ")"))) (; ";")) (expression_statement "lVar18 = *param_6;" (assignment_expression "lVar18 = *param_6" (identifier "lVar18") (= "=") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) (; ";")) (} "}"))) (expression_statement "bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;" (assignment_expression "bVar24 = *(ulong *)(param_1 + 0x30) < uVar20" (identifier "bVar24") (= "=") (binary_expression "*(ulong *)(param_1 + 0x30) < uVar20" (pointer_expression "*(ulong *)(param_1 + 0x30)" (* "*") (cast_expression "(ulong *)(param_1 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (< "<") (identifier "uVar20"))) (; ";")) (expression_statement "bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;" (assignment_expression "bVar25 = *(ulong *)(param_1 + 0x30) == uVar20" (identifier "bVar25") (= "=") (binary_expression "*(ulong *)(param_1 + 0x30) == uVar20" (pointer_expression "*(ulong *)(param_1 + 0x30)" (* "*") (cast_expression "(ulong *)(param_1 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (== "==") (identifier "uVar20"))) (; ";")) (if_statement "if (bVar24) {\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }" (if "if") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (compound_statement "{\n    *(ulong *)(param_1 + 0x30) = uVar20;\n  }" ({ "{") (expression_statement "*(ulong *)(param_1 + 0x30) = uVar20;" (assignment_expression "*(ulong *)(param_1 + 0x30) = uVar20" (pointer_expression "*(ulong *)(param_1 + 0x30)" (* "*") (cast_expression "(ulong *)(param_1 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar20")) (; ";")) (} "}"))) (expression_statement "lVar17 = 0xb;" (assignment_expression "lVar17 = 0xb" (identifier "lVar17") (= "=") (number_literal "0xb")) (; ";")) (expression_statement "uVar23 = *(uint *)(lVar18 + 8);" (assignment_expression "uVar23 = *(uint *)(lVar18 + 8)" (identifier "uVar23") (= "=") (pointer_expression "*(uint *)(lVar18 + 8)" (* "*") (cast_expression "(uint *)(lVar18 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 8)" (( "(") (binary_expression "lVar18 + 8" (identifier "lVar18") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined4 *)(lVar18 + 0x24);" (assignment_expression "uVar2 = *(undefined4 *)(lVar18 + 0x24)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(lVar18 + 0x24)" (* "*") (cast_expression "(undefined4 *)(lVar18 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 0x24)" (( "(") (binary_expression "lVar18 + 0x24" (identifier "lVar18") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "pbVar21 = param_5;" (assignment_expression "pbVar21 = param_5" (identifier "pbVar21") (= "=") (identifier "param_5")) (; ";")) (expression_statement "pbVar22 = (byte *)".debug_str";" (assignment_expression "pbVar22 = (byte *)".debug_str"" (identifier "pbVar22") (= "=") (cast_expression "(byte *)".debug_str"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".debug_str"" (" """) (string_content ".debug_str") (" """)))) (; ";")) (do_statement "do {\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  } while (bVar25);" (do "do") (compound_statement "{\n    if (lVar17 == 0) break;\n    lVar17 = lVar17 + -1;\n    bVar24 = *pbVar21 < *pbVar22;\n    bVar25 = *pbVar21 == *pbVar22;\n    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;\n    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;\n  }" ({ "{") (if_statement "if (lVar17 == 0) break;" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar17 = lVar17 + -1;" (assignment_expression "lVar17 = lVar17 + -1" (identifier "lVar17") (= "=") (binary_expression "lVar17 + -1" (identifier "lVar17") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar21 < *pbVar22;" (assignment_expression "bVar24 = *pbVar21 < *pbVar22" (identifier "bVar24") (= "=") (binary_expression "*pbVar21 < *pbVar22" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (< "<") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (; ";")) (expression_statement "bVar25 = *pbVar21 == *pbVar22;" (assignment_expression "bVar25 = *pbVar21 == *pbVar22" (identifier "bVar25") (= "=") (binary_expression "*pbVar21 == *pbVar22" (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21")) (== "==") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (; ";")) (expression_statement "pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar21 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar21 + (ulong)bVar26 * -2" (identifier "pbVar21") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + (ulong)bVar26 * -2 + 1" (binary_expression "pbVar22 + (ulong)bVar26 * -2" (identifier "pbVar22") (+ "+") (binary_expression "(ulong)bVar26 * -2" (cast_expression "(ulong)bVar26" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar26")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar25) == bVar24) {\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }" (if "if") (parenthesized_expression "((!bVar24 && !bVar25) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar25) == bVar24" (parenthesized_expression "(!bVar24 && !bVar25)" (( "(") (binary_expression "!bVar24 && !bVar25" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (compound_statement "{\n    uVar2 = 1;\n    uVar23 = uVar23 | 0x30;\n  }" ({ "{") (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar23 = uVar23 | 0x30;" (assignment_expression "uVar23 = uVar23 | 0x30" (identifier "uVar23") (= "=") (binary_expression "uVar23 | 0x30" (identifier "uVar23") (| "|") (number_literal "0x30"))) (; ";")) (} "}"))) (expression_statement "FUN_001f5d70(param_1,uVar23);" (call_expression "FUN_001f5d70(param_1,uVar23)" (identifier "FUN_001f5d70") (argument_list "(param_1,uVar23)" (( "(") (identifier "param_1") (, ",") (identifier "uVar23") () ")"))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 0xca) & 2) == 0) {\n    FUN_001f48e0();\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0xca) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0xca) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0xca) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 0xca) & 2" (pointer_expression "*(byte *)(param_1 + 0xca)" (* "*") (cast_expression "(byte *)(param_1 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xca)" (( "(") (binary_expression "param_1 + 0xca" (identifier "param_1") (+ "+") (number_literal "0xca")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001f48e0();\n  }" ({ "{") (expression_statement "FUN_001f48e0();" (call_expression "FUN_001f48e0()" (identifier "FUN_001f48e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;" (if "if") (parenthesized_expression "(((uVar23 & 0x10) != 0) && (param_7 == 0))" (( "(") (binary_expression "((uVar23 & 0x10) != 0) && (param_7 == 0)" (parenthesized_expression "((uVar23 & 0x10) != 0)" (( "(") (binary_expression "(uVar23 & 0x10) != 0" (parenthesized_expression "(uVar23 & 0x10)" (( "(") (binary_expression "uVar23 & 0x10" (identifier "uVar23") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_7 == 0)" (( "(") (binary_expression "param_7 == 0" (identifier "param_7") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00226c80;" (goto "goto") (statement_identifier "LAB_00226c80") (; ";"))) (while_statement "while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }" (while "while") (parenthesized_expression "(bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0)" (( "(") (comma_expression "bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca)" (identifier "bVar26") (= "=") (pointer_expression "*(byte *)(param_1 + 0xca)" (* "*") (cast_expression "(byte *)(param_1 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xca)" (( "(") (binary_expression "param_1 + 0xca" (identifier "param_1") (+ "+") (number_literal "0xca")) () ")"))))) (, ",") (binary_expression "(bVar26 & 0x20) != 0" (parenthesized_expression "(bVar26 & 0x20)" (( "(") (binary_expression "bVar26 & 0x20" (identifier "bVar26") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);\n    if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }\n    uVar20 = *(ulong *)(param_1 + 0x28);\n    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");\n    FUN_00178280(uVar13,uVar20);\n    param_6 = (long *)0xffffffffffffffff;\nLAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }\n  }" ({ "{") (expression_statement "psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);" (assignment_expression "psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0)" (identifier "psVar14") (= "=") (cast_expression "(size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0)" (identifier "FUN_001a4800") (argument_list "(param_1 + 0xf8,uVar10,uVar20,0)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) (, ",") (identifier "uVar10") (, ",") (identifier "uVar20") (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (psVar14 != (size_t *)0xffffffffffffffff) {\n      return psVar14;\n    }" (if "if") (parenthesized_expression "(psVar14 != (size_t *)0xffffffffffffffff)" (( "(") (binary_expression "psVar14 != (size_t *)0xffffffffffffffff" (identifier "psVar14") (!= "!=") (cast_expression "(size_t *)0xffffffffffffffff" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) () ")")) (compound_statement "{\n      return psVar14;\n    }" ({ "{") (return_statement "return psVar14;" (return "return") (identifier "psVar14") (; ";")) (} "}"))) (expression_statement "uVar20 = *(ulong *)(param_1 + 0x28);" (assignment_expression "uVar20 = *(ulong *)(param_1 + 0x28)" (identifier "uVar20") (= "=") (pointer_expression "*(ulong *)(param_1 + 0x28)" (* "*") (cast_expression "(ulong *)(param_1 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");" (assignment_expression "uVar13 = gettext("out of patch space in section %s; relink with --incremental-full")" (identifier "uVar13") (= "=") (call_expression "gettext("out of patch space in section %s; relink with --incremental-full")" (identifier "gettext") (argument_list "("out of patch space in section %s; relink with --incremental-full")" (( "(") (string_literal ""out of patch space in section %s; relink with --incremental-full"" (" """) (string_content "out of patch space in section %s; relink with --incremental-full") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00178280(uVar13,uVar20);" (call_expression "FUN_00178280(uVar13,uVar20)" (identifier "FUN_00178280") (argument_list "(uVar13,uVar20)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar20") () ")"))) (; ";")) (expression_statement "param_6 = (long *)0xffffffffffffffff;" (assignment_expression "param_6 = (long *)0xffffffffffffffff" (identifier "param_6") (= "=") (cast_expression "(long *)0xffffffffffffffff" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff"))) (; ";")) (labeled_statement "LAB_00226c80:\n    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }" (statement_identifier "LAB_00226c80") (: ":") (if_statement "if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))\n    {\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }" (if "if") (parenthesized_expression "((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))" (( "(") (binary_expression "(*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0')" (parenthesized_expression "(*(int *)(*param_6 + 0x14) != 0)" (( "(") (binary_expression "*(int *)(*param_6 + 0x14) != 0" (pointer_expression "*(int *)(*param_6 + 0x14)" (* "*") (cast_expression "(int *)(*param_6 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_6 + 0x14)" (( "(") (binary_expression "*param_6 + 0x14" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0')" (( "(") (comma_expression "cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'" (assignment_expression "cVar8 = FUN_002379a0(PTR_DAT_0043e6b0)" (identifier "cVar8") (= "=") (call_expression "FUN_002379a0(PTR_DAT_0043e6b0)" (identifier "FUN_002379a0") (argument_list "(PTR_DAT_0043e6b0)" (( "(") (identifier "PTR_DAT_0043e6b0") () ")")))) (, ",") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }\n      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);\n      if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }\n    }" ({ "{") (if_statement "if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }\n      else {\n        uVar7 = 1;\n      }" (if "if") (parenthesized_expression "(((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0'))" (( "(") (binary_expression "((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')" (parenthesized_expression "((*(byte *)(param_1 + 0xca) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0xca) & 0x10) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0xca) & 0x10)" (( "(") (binary_expression "*(byte *)(param_1 + 0xca) & 0x10" (pointer_expression "*(byte *)(param_1 + 0xca)" (* "*") (cast_expression "(byte *)(param_1 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xca)" (( "(") (binary_expression "param_1 + 0xca" (identifier "param_1") (+ "+") (number_literal "0xca")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_8 == '\0')" (( "(") (binary_expression "param_8 == '\0'" (identifier "param_8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }\n      }" ({ "{") (if_statement "if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;" (if "if") (parenthesized_expression "(*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0)" (( "(") (binary_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0" (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x18" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00227090;" (goto "goto") (statement_identifier "LAB_00227090") (; ";"))) (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }" (if "if") (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0))" (( "(") (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||\n           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)" (( "(") (comma_expression "uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (, ",") (binary_expression "(PTR_DAT_0043e6b0[0x24] & 8) == 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 8)" (( "(") (binary_expression "PTR_DAT_0043e6b0[0x24] & 8" (subscript_expression "PTR_DAT_0043e6b0[0x24]" (identifier "PTR_DAT_0043e6b0") ([ "[") (number_literal "0x24") (] "]")) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }\n        }" ({ "{") (expression_statement "pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);" (assignment_expression "pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" (* "*") (cast_expression "(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" (( "(") (binary_expression "**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0" (pointer_expression "**(long **)(PTR_DAT_0043e6b0 + 0x18)" (* "*") (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x18" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x18")) () ")"))))) (+ "+") (number_literal "0xe0")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_001b1290) {\n            uVar7 = FUN_001f4a70();\n          }\n          else {\n            uVar7 = (*pcVar4)();\n          }" (if "if") (parenthesized_expression "(pcVar4 == FUN_001b1290)" (( "(") (binary_expression "pcVar4 == FUN_001b1290" (identifier "pcVar4") (== "==") (identifier "FUN_001b1290")) () ")")) (compound_statement "{\n            uVar7 = FUN_001f4a70();\n          }" ({ "{") (expression_statement "uVar7 = FUN_001f4a70();" (assignment_expression "uVar7 = FUN_001f4a70()" (identifier "uVar7") (= "=") (call_expression "FUN_001f4a70()" (identifier "FUN_001f4a70") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            uVar7 = (*pcVar4)();\n          }" (else "else") (compound_statement "{\n            uVar7 = (*pcVar4)();\n          }" ({ "{") (expression_statement "uVar7 = (*pcVar4)();" (assignment_expression "uVar7 = (*pcVar4)()" (identifier "uVar7") (= "=") (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n        uVar7 = 1;\n      }" (else "else") (compound_statement "{\n        uVar7 = 1;\n      }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);" (assignment_expression "cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7)" (identifier "cVar8") (= "=") (call_expression "FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7)" (identifier "FUN_001fb0e0") (argument_list "(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "uVar23") (, ",") (identifier "uVar2") (, ",") (identifier "uVar20") (, ",") (identifier "uVar7") () ")")))) (; ";")) (if_statement "if (cVar8 != '\0') {\n        return (size_t *)0xffffffffffffffff;\n      }" (if "if") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        return (size_t *)0xffffffffffffffff;\n      }" ({ "{") (return_statement "return (size_t *)0xffffffffffffffff;" (return "return") (cast_expression "(size_t *)0xffffffffffffffff" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffffffffffff")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "psVar14 = *(size_t **)(param_1 + 0x10);" (assignment_expression "psVar14 = *(size_t **)(param_1 + 0x10)" (identifier "psVar14") (= "=") (pointer_expression "*(size_t **)(param_1 + 0x10)" (* "*") (cast_expression "(size_t **)(param_1 + 0x10)" (( "(") (type_descriptor "size_t **" (primitive_type "size_t") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "psVar11 = psVar14;" (assignment_expression "psVar11 = psVar14" (identifier "psVar11") (= "=") (identifier "psVar14")) (; ";")) (if_statement "if (uVar20 != 0) {\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }" (if "if") (parenthesized_expression "(uVar20 != 0)" (( "(") (binary_expression "uVar20 != 0" (identifier "uVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);\n  }" ({ "{") (expression_statement "psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);" (assignment_expression "psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20)" (identifier "psVar11") (= "=") (cast_expression "(size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar20 - 1) + (long)psVar14 & -uVar20)" (( "(") (binary_expression "(uVar20 - 1) + (long)psVar14 & -uVar20" (binary_expression "(uVar20 - 1) + (long)psVar14" (parenthesized_expression "(uVar20 - 1)" (( "(") (binary_expression "uVar20 - 1" (identifier "uVar20") (- "-") (number_literal "1")) () ")")) (+ "+") (cast_expression "(long)psVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar14"))) (& "&") (unary_expression "-uVar20" (- "-") (identifier "uVar20"))) () ")")))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(param_1 + 0x20) & 2) != 0) {\n                    \n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x20) & 2) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 0x20) & 2" (pointer_expression "*(byte *)(param_1 + 0x20)" (* "*") (cast_expression "(byte *)(param_1 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");\n  }" ({ "{") (expression_statement "FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");" (call_expression "FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0x231,"set_current_data_size_for_child")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x231") (, ",") (string_literal ""set_current_data_size_for_child"" (" """) (string_content "set_current_data_size_for_child") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;" (assignment_expression "*(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10" (pointer_expression "*(ulong *)(param_1 + 0x10)" (* "*") (cast_expression "(ulong *)(param_1 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "(long)psVar11 + uVar10" (cast_expression "(long)psVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar11")) (+ "+") (identifier "uVar10"))) (; ";")) (if_statement "if (((bVar26 & 1) == 0) && (param_8 == '\0')) {\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }\n  else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }" (if "if") (parenthesized_expression "(((bVar26 & 1) == 0) && (param_8 == '\0'))" (( "(") (binary_expression "((bVar26 & 1) == 0) && (param_8 == '\0')" (parenthesized_expression "((bVar26 & 1) == 0)" (( "(") (binary_expression "(bVar26 & 1) == 0" (parenthesized_expression "(bVar26 & 1)" (( "(") (binary_expression "bVar26 & 1" (identifier "bVar26") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_8 == '\0')" (( "(") (binary_expression "param_8 == '\0'" (identifier "param_8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }\n    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }\n  }" ({ "{") (if_statement "if ((uVar23 & 4) == 0) {\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }\n    else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }" (if "if") (parenthesized_expression "((uVar23 & 4) == 0)" (( "(") (binary_expression "(uVar23 & 4) == 0" (parenthesized_expression "(uVar23 & 4)" (( "(") (binary_expression "uVar23 & 4" (identifier "uVar23") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;\nLAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;\n    }" ({ "{") (if_statement "if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;" (if "if") (parenthesized_expression "((long)psVar11 <= (long)psVar14)" (( "(") (binary_expression "(long)psVar11 <= (long)psVar14" (cast_expression "(long)psVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar11")) (<= "<=") (cast_expression "(long)psVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar14"))) () ")")) (goto_statement "goto LAB_00226aaa;" (goto "goto") (statement_identifier "LAB_00226aaa") (; ";"))) (labeled_statement "LAB_00226e42:\n      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;" (statement_identifier "LAB_00226e42") (: ":") (if_statement "if ((bVar26 & 0x10) != 0) goto LAB_00226aba;" (if "if") (parenthesized_expression "((bVar26 & 0x10) != 0)" (( "(") (binary_expression "(bVar26 & 0x10) != 0" (parenthesized_expression "(bVar26 & 0x10)" (( "(") (binary_expression "bVar26 & 0x10" (identifier "bVar26") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00226aba;" (goto "goto") (statement_identifier "LAB_00226aba") (; ";")))) (} "}")) (else_clause "else {\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }" (else "else") (compound_statement "{\n      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n      if (plVar1 == (long *)0x0) goto LAB_00227090;\n      if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }\nLAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;\n    }" ({ "{") (expression_statement "plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);" (assignment_expression "plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18)" (identifier "plVar1") (= "=") (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x18" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (plVar1 == (long *)0x0) goto LAB_00227090;" (if "if") (parenthesized_expression "(plVar1 == (long *)0x0)" (( "(") (binary_expression "plVar1 == (long *)0x0" (identifier "plVar1") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00227090;" (goto "goto") (statement_identifier "LAB_00227090") (; ";"))) (if_statement "if (*(char *)(plVar1[1] + 0xe) == '\0') {\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }\n      else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }" (if "if") (parenthesized_expression "(*(char *)(plVar1[1] + 0xe) == '\0')" (( "(") (binary_expression "*(char *)(plVar1[1] + 0xe) == '\0'" (pointer_expression "*(char *)(plVar1[1] + 0xe)" (* "*") (cast_expression "(char *)(plVar1[1] + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar1[1] + 0xe)" (( "(") (binary_expression "plVar1[1] + 0xe" (subscript_expression "plVar1[1]" (identifier "plVar1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xe")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }\n      }" ({ "{") (if_statement "if ((long)psVar14 < (long)psVar11) {\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }" (if "if") (parenthesized_expression "((long)psVar14 < (long)psVar11)" (( "(") (binary_expression "(long)psVar14 < (long)psVar11" (cast_expression "(long)psVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar14")) (< "<") (cast_expression "(long)psVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar11"))) () ")")) (compound_statement "{\nLAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);\n          if (plVar1 == (long *)0x0) goto LAB_00227090;\n          if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }\n          goto LAB_00226e42;\n        }" ({ "{") (labeled_statement "LAB_00226d8d:\n          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);" (statement_identifier "LAB_00226d8d") (: ":") (expression_statement "plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);" (assignment_expression "plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18)" (identifier "plVar1") (= "=") (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x18" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (if_statement "if (plVar1 == (long *)0x0) goto LAB_00227090;" (if "if") (parenthesized_expression "(plVar1 == (long *)0x0)" (( "(") (binary_expression "plVar1 == (long *)0x0" (identifier "plVar1") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00227090;" (goto "goto") (statement_identifier "LAB_00227090") (; ";"))) (if_statement "if (*(char *)(plVar1[1] + 0xe) != '\0') {\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }" (if "if") (parenthesized_expression "(*(char *)(plVar1[1] + 0xe) != '\0')" (( "(") (binary_expression "*(char *)(plVar1[1] + 0xe) != '\0'" (pointer_expression "*(char *)(plVar1[1] + 0xe)" (* "*") (cast_expression "(char *)(plVar1[1] + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar1[1] + 0xe)" (( "(") (binary_expression "plVar1[1] + 0xe" (subscript_expression "plVar1[1]" (identifier "plVar1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xe")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            local_50 = (long)psVar11 - (long)psVar14;\n            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n          }" ({ "{") (expression_statement "local_50 = (long)psVar11 - (long)psVar14;" (assignment_expression "local_50 = (long)psVar11 - (long)psVar14" (identifier "local_50") (= "=") (binary_expression "(long)psVar11 - (long)psVar14" (cast_expression "(long)psVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar11")) (- "-") (cast_expression "(long)psVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar14")))) (; ";")) (if_statement "if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }\n            else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88))" (( "(") (binary_expression "*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)" (pointer_expression "*(long *)(param_1 + 0x90)" (* "*") (cast_expression "(long *)(param_1 + 0x90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (== "==") (pointer_expression "*(long *)(param_1 + 0x88)" (* "*") (cast_expression "(long *)(param_1 + 0x88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")"))))) () ")")) (compound_statement "{\n              local_58 = psVar14;\n              FUN_00213c70(param_1 + 0xa8,&local_58);\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }" ({ "{") (expression_statement "local_58 = psVar14;" (assignment_expression "local_58 = psVar14" (identifier "local_58") (= "=") (identifier "psVar14")) (; ";")) (expression_statement "FUN_00213c70(param_1 + 0xa8,&local_58);" (call_expression "FUN_00213c70(param_1 + 0xa8,&local_58)" (identifier "FUN_00213c70") (argument_list "(param_1 + 0xa8,&local_58)" (( "(") (binary_expression "param_1 + 0xa8" (identifier "param_1") (+ "+") (number_literal "0xa8")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (expression_statement "bVar26 = *(byte *)(param_1 + 0xca);" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca)" (identifier "bVar26") (= "=") (pointer_expression "*(byte *)(param_1 + 0xca)" (* "*") (cast_expression "(byte *)(param_1 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xca)" (( "(") (binary_expression "param_1 + 0xca" (identifier "param_1") (+ "+") (number_literal "0xca")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }" (else "else") (compound_statement "{\n              (**(code **)(*plVar1 + 0x30))(&local_78);\n                    \n              sVar12 = FUN_002d94a0(0x58);\n                    \n              FUN_001ffa20(sVar12,&local_78,1);\n              local_40 = 0;\n              local_58 = (size_t *)0xffffffff;\n              local_50 = 0;\n              local_48 = sVar12;\n                    \n              FUN_0020d8b0(param_1 + 0x88,&local_58);\n              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }\n              bVar26 = *(byte *)(param_1 + 0xca);\n            }" ({ "{") (expression_statement "(**(code **)(*plVar1 + 0x30))(&local_78);" (call_expression "(**(code **)(*plVar1 + 0x30))(&local_78)" (parenthesized_expression "(**(code **)(*plVar1 + 0x30))" (( "(") (pointer_expression "**(code **)(*plVar1 + 0x30)" (* "*") (pointer_expression "*(code **)(*plVar1 + 0x30)" (* "*") (cast_expression "(code **)(*plVar1 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar1 + 0x30)" (( "(") (binary_expression "*plVar1 + 0x30" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(&local_78)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) () ")"))) (; ";")) (expression_statement "sVar12 = FUN_002d94a0(0x58);" (assignment_expression "sVar12 = FUN_002d94a0(0x58)" (identifier "sVar12") (= "=") (call_expression "FUN_002d94a0(0x58)" (identifier "FUN_002d94a0") (argument_list "(0x58)" (( "(") (number_literal "0x58") () ")")))) (; ";")) (expression_statement "FUN_001ffa20(sVar12,&local_78,1);" (call_expression "FUN_001ffa20(sVar12,&local_78,1)" (identifier "FUN_001ffa20") (argument_list "(sVar12,&local_78,1)" (( "(") (identifier "sVar12") (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = (size_t *)0xffffffff;" (assignment_expression "local_58 = (size_t *)0xffffffff" (identifier "local_58") (= "=") (cast_expression "(size_t *)0xffffffff" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = sVar12;" (assignment_expression "local_48 = sVar12" (identifier "local_48") (= "=") (identifier "sVar12")) (; ";")) (expression_statement "FUN_0020d8b0(param_1 + 0x88,&local_58);" (call_expression "FUN_0020d8b0(param_1 + 0x88,&local_58)" (identifier "FUN_0020d8b0") (argument_list "(param_1 + 0x88,&local_58)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")"))) (; ";")) (if_statement "if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {\n                FUN_002dac70();\n              }" (if "if") (parenthesized_expression "((long *)CONCAT44(iStack_74,local_78) != &lStack_68)" (( "(") (binary_expression "(long *)CONCAT44(iStack_74,local_78) != &lStack_68" (cast_expression "(long *)CONCAT44(iStack_74,local_78)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT44(iStack_74,local_78)" (identifier "CONCAT44") (argument_list "(iStack_74,local_78)" (( "(") (identifier "iStack_74") (, ",") (identifier "local_78") () ")")))) (!= "!=") (pointer_expression "&lStack_68" (& "&") (identifier "lStack_68"))) () ")")) (compound_statement "{\n                FUN_002dac70();\n              }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar26 = *(byte *)(param_1 + 0xca);" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca)" (identifier "bVar26") (= "=") (pointer_expression "*(byte *)(param_1 + 0xca)" (* "*") (cast_expression "(byte *)(param_1 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xca)" (( "(") (binary_expression "param_1 + 0xca" (identifier "param_1") (+ "+") (number_literal "0xca")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_00226e42;" (goto "goto") (statement_identifier "LAB_00226e42") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }" (else "else") (compound_statement "{\n        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }\n        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }\n        bVar26 = *(byte *)(param_1 + 0xca) | 1;\n        *(byte *)(param_1 + 0xca) = bVar26;\n      }" ({ "{") (if_statement "if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }" (if "if") (parenthesized_expression "((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0))" (( "(") (binary_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)" (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 8) == 0)" (( "(") (binary_expression "(PTR_DAT_0043e6b0[0x24] & 8) == 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 8)" (( "(") (binary_expression "PTR_DAT_0043e6b0[0x24] & 8" (subscript_expression "PTR_DAT_0043e6b0[0x24]" (identifier "PTR_DAT_0043e6b0") ([ "[") (number_literal "0x24") (] "]")) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }\n        }" ({ "{") (if_statement "if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }" (if "if") (parenthesized_expression "(*(code **)(*plVar1 + 0xe0) == FUN_001b1290)" (( "(") (binary_expression "*(code **)(*plVar1 + 0xe0) == FUN_001b1290" (pointer_expression "*(code **)(*plVar1 + 0xe0)" (* "*") (cast_expression "(code **)(*plVar1 + 0xe0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar1 + 0xe0)" (( "(") (binary_expression "*plVar1 + 0xe0" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (+ "+") (number_literal "0xe0")) () ")")))) (== "==") (identifier "FUN_001b1290")) () ")")) (compound_statement "{\n            cVar8 = FUN_001f4a70();\n          }" ({ "{") (expression_statement "cVar8 = FUN_001f4a70();" (assignment_expression "cVar8 = FUN_001f4a70()" (identifier "cVar8") (= "=") (call_expression "FUN_001f4a70()" (identifier "FUN_001f4a70") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }" (else "else") (compound_statement "{\n            cVar8 = (**(code **)(*plVar1 + 0xe0))();\n          }" ({ "{") (expression_statement "cVar8 = (**(code **)(*plVar1 + 0xe0))();" (assignment_expression "cVar8 = (**(code **)(*plVar1 + 0xe0))()" (identifier "cVar8") (= "=") (call_expression "(**(code **)(*plVar1 + 0xe0))()" (parenthesized_expression "(**(code **)(*plVar1 + 0xe0))" (( "(") (pointer_expression "**(code **)(*plVar1 + 0xe0)" (* "*") (pointer_expression "*(code **)(*plVar1 + 0xe0)" (* "*") (cast_expression "(code **)(*plVar1 + 0xe0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar1 + 0xe0)" (( "(") (binary_expression "*plVar1 + 0xe0" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (+ "+") (number_literal "0xe0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }" (if "if") (parenthesized_expression "((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0'))" (( "(") (binary_expression "(cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')" (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(param_2 + 0x371) == '\0')" (( "(") (binary_expression "*(char *)(param_2 + 0x371) == '\0'" (pointer_expression "*(char *)(param_2 + 0x371)" (* "*") (cast_expression "(char *)(param_2 + 0x371)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x371)" (( "(") (binary_expression "param_2 + 0x371" (identifier "param_2") (+ "+") (number_literal "0x371")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            bVar26 = *(byte *)(param_1 + 0xca);\n            goto LAB_00226a9c;\n          }" ({ "{") (expression_statement "bVar26 = *(byte *)(param_1 + 0xca);" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca)" (identifier "bVar26") (= "=") (pointer_expression "*(byte *)(param_1 + 0xca)" (* "*") (cast_expression "(byte *)(param_1 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xca)" (( "(") (binary_expression "param_1 + 0xca" (identifier "param_1") (+ "+") (number_literal "0xca")) () ")"))))) (; ";")) (goto_statement "goto LAB_00226a9c;" (goto "goto") (statement_identifier "LAB_00226a9c") (; ";")) (} "}"))) (} "}"))) (if_statement "if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8))" (( "(") (binary_expression "*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)" (pointer_expression "*(long *)(param_1 + 0xb0)" (* "*") (cast_expression "(long *)(param_1 + 0xb0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb0)" (( "(") (binary_expression "param_1 + 0xb0" (identifier "param_1") (+ "+") (number_literal "0xb0")) () ")")))) (!= "!=") (pointer_expression "*(long *)(param_1 + 0xa8)" (* "*") (cast_expression "(long *)(param_1 + 0xa8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa8)" (( "(") (binary_expression "param_1 + 0xa8" (identifier "param_1") (+ "+") (number_literal "0xa8")) () ")"))))) () ")")) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");\n        }" ({ "{") (expression_statement "FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");" (call_expression "FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.cc",0x9eb,"add_input_section")" (( "(") (string_literal ""../../gold/output.cc"" (" """) (string_content "../../gold/output.cc") (" """)) (, ",") (number_literal "0x9eb") (, ",") (string_literal ""add_input_section"" (" """) (string_content "add_input_section") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "bVar26 = *(byte *)(param_1 + 0xca) | 1;" (assignment_expression "bVar26 = *(byte *)(param_1 + 0xca) | 1" (identifier "bVar26") (= "=") (binary_expression "*(byte *)(param_1 + 0xca) | 1" (pointer_expression "*(byte *)(param_1 + 0xca)" (* "*") (cast_expression "(byte *)(param_1 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xca)" (( "(") (binary_expression "param_1 + 0xca" (identifier "param_1") (+ "+") (number_literal "0xca")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "*(byte *)(param_1 + 0xca) = bVar26;" (assignment_expression "*(byte *)(param_1 + 0xca) = bVar26" (pointer_expression "*(byte *)(param_1 + 0xca)" (* "*") (cast_expression "(byte *)(param_1 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xca)" (( "(") (binary_expression "param_1 + 0xca" (identifier "param_1") (+ "+") (number_literal "0xca")) () ")")))) (= "=") (identifier "bVar26")) (; ";")) (} "}")))) (labeled_statement "LAB_00226aaa:\n      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;" (statement_identifier "LAB_00226aaa") (: ":") (if_statement "if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;" (if "if") (parenthesized_expression "(((bVar26 & 0x10) != 0) || (param_8 != '\0'))" (( "(") (binary_expression "((bVar26 & 0x10) != 0) || (param_8 != '\0')" (parenthesized_expression "((bVar26 & 0x10) != 0)" (( "(") (binary_expression "(bVar26 & 0x10) != 0" (parenthesized_expression "(bVar26 & 0x10)" (( "(") (binary_expression "bVar26 & 0x10" (identifier "bVar26") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_8 != '\0')" (( "(") (binary_expression "param_8 != '\0'" (identifier "param_8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_00226aba;" (goto "goto") (statement_identifier "LAB_00226aba") (; ";")))) (} "}")))) (if_statement "if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0))))" (( "(") (binary_expression "(*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&\n       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))" (parenthesized_expression "(*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88))" (( "(") (binary_expression "*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)" (pointer_expression "*(long *)(param_1 + 0x90)" (* "*") (cast_expression "(long *)(param_1 + 0x90)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (== "==") (pointer_expression "*(long *)(param_1 + 0x88)" (* "*") (cast_expression "(long *)(param_1 + 0x88)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x88)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))" (( "(") (parenthesized_expression "((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0))" (( "(") (binary_expression "(*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)" (binary_expression "(*(byte *)(param_1 + 0xc9) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0xc9) & 4)" (( "(") (binary_expression "*(byte *)(param_1 + 0xc9) & 4" (pointer_expression "*(byte *)(param_1 + 0xc9)" (* "*") (cast_expression "(byte *)(param_1 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc9)" (( "(") (binary_expression "param_1 + 0xc9" (identifier "param_1") (+ "+") (number_literal "0xc9")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(byte *)(param_1 + 0xc9) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0xc9) & 8) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0xc9) & 8)" (( "(") (binary_expression "*(byte *)(param_1 + 0xc9) & 8" (pointer_expression "*(byte *)(param_1 + 0xc9)" (* "*") (cast_expression "(byte *)(param_1 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc9)" (( "(") (binary_expression "param_1 + 0xc9" (identifier "param_1") (+ "+") (number_literal "0xc9")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }\n    }" ({ "{") (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00227060;" (goto "goto") (statement_identifier "LAB_00227060") (; ";"))) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x3b38")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }\n        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }\n      }" ({ "{") (if_statement "if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }" (if "if") (parenthesized_expression "(*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0)" (( "(") (binary_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0" (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x18" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");\n        }" ({ "{") (labeled_statement "LAB_00227090:\n                    \n          FUN_0017c650("../../gold/parameters.h",0x69,"target");" (statement_identifier "LAB_00227090") (: ":") (expression_statement "FUN_0017c650("../../gold/parameters.h",0x69,"target");" (call_expression "FUN_0017c650("../../gold/parameters.h",0x69,"target")" (identifier "FUN_0017c650") (argument_list "("../../gold/parameters.h",0x69,"target")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }" (if "if") (parenthesized_expression "((PTR_DAT_0043e6b0[0x24] & 8) == 0)" (( "(") (binary_expression "(PTR_DAT_0043e6b0[0x24] & 8) == 0" (parenthesized_expression "(PTR_DAT_0043e6b0[0x24] & 8)" (( "(") (binary_expression "PTR_DAT_0043e6b0[0x24] & 8" (subscript_expression "PTR_DAT_0043e6b0[0x24]" (identifier "PTR_DAT_0043e6b0") ([ "[") (number_literal "0x24") (] "]")) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);\n          if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }\n          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }\n        }" ({ "{") (expression_statement "pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);" (assignment_expression "pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" (* "*") (cast_expression "(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0)" (( "(") (binary_expression "**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0" (pointer_expression "**(long **)(PTR_DAT_0043e6b0 + 0x18)" (* "*") (pointer_expression "*(long **)(PTR_DAT_0043e6b0 + 0x18)" (* "*") (cast_expression "(long **)(PTR_DAT_0043e6b0 + 0x18)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x18)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x18" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x18")) () ")"))))) (+ "+") (number_literal "0xe0")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_001b1290) {\n            cVar8 = FUN_001f4a70();\n          }\n          else {\n            cVar8 = (*pcVar4)();\n          }" (if "if") (parenthesized_expression "(pcVar4 == FUN_001b1290)" (( "(") (binary_expression "pcVar4 == FUN_001b1290" (identifier "pcVar4") (== "==") (identifier "FUN_001b1290")) () ")")) (compound_statement "{\n            cVar8 = FUN_001f4a70();\n          }" ({ "{") (expression_statement "cVar8 = FUN_001f4a70();" (assignment_expression "cVar8 = FUN_001f4a70()" (identifier "cVar8") (= "=") (call_expression "FUN_001f4a70()" (identifier "FUN_001f4a70") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            cVar8 = (*pcVar4)();\n          }" (else "else") (compound_statement "{\n            cVar8 = (*pcVar4)();\n          }" ({ "{") (expression_statement "cVar8 = (*pcVar4)();" (assignment_expression "cVar8 = (*pcVar4)()" (identifier "cVar8") (= "=") (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {\n            return psVar11;\n          }" (if "if") (parenthesized_expression "((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0'))" (( "(") (binary_expression "(cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')" (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(param_2 + 0x371) == '\0')" (( "(") (binary_expression "*(char *)(param_2 + 0x371) == '\0'" (pointer_expression "*(char *)(param_2 + 0x371)" (* "*") (cast_expression "(char *)(param_2 + 0x371)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x371)" (( "(") (binary_expression "param_2 + 0x371" (identifier "param_2") (+ "+") (number_literal "0x371")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            return psVar11;\n          }" ({ "{") (return_statement "return psVar11;" (return "return") (identifier "psVar11") (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }" (else "else") (compound_statement "{\nLAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;\n    if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }\n  }" ({ "{") (labeled_statement "LAB_00226a9c:\n    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;" (statement_identifier "LAB_00226a9c") (: ":") (if_statement "if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;" (if "if") (parenthesized_expression "(((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0))" (( "(") (binary_expression "((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)" (parenthesized_expression "((long)psVar11 <= (long)psVar14)" (( "(") (binary_expression "(long)psVar11 <= (long)psVar14" (cast_expression "(long)psVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar11")) (<= "<=") (cast_expression "(long)psVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar14"))) () ")")) (|| "||") (parenthesized_expression "((bVar26 & 1) != 0)" (( "(") (binary_expression "(bVar26 & 1) != 0" (parenthesized_expression "(bVar26 & 1)" (( "(") (binary_expression "bVar26 & 1" (identifier "bVar26") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00226aaa;" (goto "goto") (statement_identifier "LAB_00226aaa") (; ";")))) (if_statement "if (param_8 == '\0') {\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }" (if "if") (parenthesized_expression "(param_8 == '\0')" (( "(") (binary_expression "param_8 == '\0'" (identifier "param_8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if ((uVar23 & 4) != 0) goto LAB_00226d8d;\n      goto LAB_00226e42;\n    }" ({ "{") (if_statement "if ((uVar23 & 4) != 0) goto LAB_00226d8d;" (if "if") (parenthesized_expression "((uVar23 & 4) != 0)" (( "(") (binary_expression "(uVar23 & 4) != 0" (parenthesized_expression "(uVar23 & 4)" (( "(") (binary_expression "uVar23 & 4" (identifier "uVar23") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00226d8d;" (goto "goto") (statement_identifier "LAB_00226d8d") (; ";"))) (goto_statement "goto LAB_00226e42;" (goto "goto") (statement_identifier "LAB_00226e42") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00226aba:\n  lVar18 = 0;" (statement_identifier "LAB_00226aba") (: ":") (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (uVar20 != 0) {\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }" (if "if") (parenthesized_expression "(uVar20 != 0)" (( "(") (binary_expression "uVar20 != 0" (identifier "uVar20") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }\n  }" ({ "{") (for_statement "for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {\n    }" (for "for") (( "(") (; ";") (binary_expression "(uVar20 >> lVar18 & 1) == 0" (parenthesized_expression "(uVar20 >> lVar18 & 1)" (( "(") (binary_expression "uVar20 >> lVar18 & 1" (binary_expression "uVar20 >> lVar18" (identifier "uVar20") (>> ">>") (identifier "lVar18")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (; ";") (assignment_expression "lVar18 = lVar18 + 1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + 1" (identifier "lVar18") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n    }" ({ "{") (} "}"))) (} "}"))) (expression_statement "iStack_74 = (int)lVar18;" (assignment_expression "iStack_74 = (int)lVar18" (identifier "iStack_74") (= "=") (cast_expression "(int)lVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar18"))) (; ";")) (if_statement "if (uVar20 == 0) {\n    iStack_74 = -1;\n  }" (if "if") (parenthesized_expression "(uVar20 == 0)" (( "(") (binary_expression "uVar20 == 0" (identifier "uVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iStack_74 = -1;\n  }" ({ "{") (expression_statement "iStack_74 = -1;" (assignment_expression "iStack_74 = -1" (identifier "iStack_74") (= "=") (number_literal "-1")) (; ";")) (} "}"))) (expression_statement "iStack_60 = 0;" (assignment_expression "iStack_60 = 0" (identifier "iStack_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_74 = iStack_74 + 1;" (assignment_expression "iStack_74 = iStack_74 + 1" (identifier "iStack_74") (= "=") (binary_expression "iStack_74 + 1" (identifier "iStack_74") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_78 = param_4;" (assignment_expression "local_78 = param_4" (identifier "local_78") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (param_4 + 4 < 4) {\n                    \n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }" (if "if") (parenthesized_expression "(param_4 + 4 < 4)" (( "(") (binary_expression "param_4 + 4 < 4" (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n                    \n    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");\n  }" ({ "{") (expression_statement "FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");" (call_expression "FUN_0017c650("../../gold/output.h",0xe9a,"Input_section")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0xe9a,"Input_section")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xe9a") (, ",") (string_literal ""Input_section"" (" """) (string_content "Input_section") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uStack_70 = uVar10;" (assignment_expression "uStack_70 = uVar10" (identifier "uStack_70") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "lStack_68 = param_3;" (assignment_expression "lStack_68 = param_3" (identifier "lStack_68") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_00227060:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00227060:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (labeled_statement "LAB_00227060:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (statement_identifier "LAB_00227060") (: ":") (expression_statement "FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0017c650("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0017c650") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;" (if "if") (parenthesized_expression "(*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0)" (( "(") (binary_expression "*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0" (pointer_expression "*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8)" (* "*") (cast_expression "(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x58e8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00226b96;" (goto "goto") (statement_identifier "LAB_00226b96") (; ";"))) (expression_statement "psVar14 = &local_48;" (assignment_expression "psVar14 = &local_48" (identifier "psVar14") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (expression_statement "local_58 = psVar14;" (assignment_expression "local_58 = psVar14" (identifier "local_58") (= "=") (identifier "psVar14")) (; ";")) (expression_statement "sVar12 = strlen((char *)param_5);" (assignment_expression "sVar12 = strlen((char *)param_5)" (identifier "sVar12") (= "=") (call_expression "strlen((char *)param_5)" (identifier "strlen") (argument_list "((char *)param_5)" (( "(") (cast_expression "(char *)param_5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_5")) () ")")))) (; ";")) (expression_statement "sStack_80 = sVar12;" (assignment_expression "sStack_80 = sVar12" (identifier "sStack_80") (= "=") (identifier "sVar12")) (; ";")) (if_statement "if (sVar12 < 0x10) {\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }\n  else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }" (if "if") (parenthesized_expression "(sVar12 < 0x10)" (( "(") (binary_expression "sVar12 < 0x10" (identifier "sVar12") (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n    if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;\n  }" ({ "{") (if_statement "if (sVar12 == 1) {\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }\n    else if (sVar12 != 0) goto LAB_00226f36;" (if "if") (parenthesized_expression "(sVar12 == 1)" (( "(") (binary_expression "sVar12 == 1" (identifier "sVar12") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      local_48 = CONCAT71(local_48._1_7_,*param_5);\n    }" ({ "{") (expression_statement "local_48 = CONCAT71(local_48._1_7_,*param_5);" (assignment_expression "local_48 = CONCAT71(local_48._1_7_,*param_5)" (identifier "local_48") (= "=") (call_expression "CONCAT71(local_48._1_7_,*param_5)" (identifier "CONCAT71") (argument_list "(local_48._1_7_,*param_5)" (( "(") (field_expression "local_48._1_7_" (identifier "local_48") (. ".") (field_identifier "_1_7_")) (, ",") (pointer_expression "*param_5" (* "*") (identifier "param_5")) () ")")))) (; ";")) (} "}")) (else_clause "else if (sVar12 != 0) goto LAB_00226f36;" (else "else") (if_statement "if (sVar12 != 0) goto LAB_00226f36;" (if "if") (parenthesized_expression "(sVar12 != 0)" (( "(") (binary_expression "sVar12 != 0" (identifier "sVar12") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00226f36;" (goto "goto") (statement_identifier "LAB_00226f36") (; ";"))))) (} "}")) (else_clause "else {\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }" (else "else") (compound_statement "{\n    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);\n    local_48 = sStack_80;\n    local_58 = psVar14;\nLAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);\n    psVar14 = local_58;\n  }" ({ "{") (expression_statement "psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);" (assignment_expression "psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0)" (identifier "psVar14") (= "=") (cast_expression "(size_t *)FUN_002e15a0(&local_58,&sStack_80,0)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002e15a0(&local_58,&sStack_80,0)" (identifier "FUN_002e15a0") (argument_list "(&local_58,&sStack_80,0)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (pointer_expression "&sStack_80" (& "&") (identifier "sStack_80")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "local_48 = sStack_80;" (assignment_expression "local_48 = sStack_80" (identifier "local_48") (= "=") (identifier "sStack_80")) (; ";")) (expression_statement "local_58 = psVar14;" (assignment_expression "local_58 = psVar14" (identifier "local_58") (= "=") (identifier "psVar14")) (; ";")) (labeled_statement "LAB_00226f36:\n    memcpy(psVar14,param_5,sVar12);" (statement_identifier "LAB_00226f36") (: ":") (expression_statement "memcpy(psVar14,param_5,sVar12);" (call_expression "memcpy(psVar14,param_5,sVar12)" (identifier "memcpy") (argument_list "(psVar14,param_5,sVar12)" (( "(") (identifier "psVar14") (, ",") (identifier "param_5") (, ",") (identifier "sVar12") () ")"))) (; ";"))) (expression_statement "psVar14 = local_58;" (assignment_expression "psVar14 = local_58" (identifier "psVar14") (= "=") (identifier "local_58")) (; ";")) (} "}")))) (expression_statement "*(undefined1 *)((long)psVar14 + sStack_80) = 0;" (assignment_expression "*(undefined1 *)((long)psVar14 + sStack_80) = 0" (pointer_expression "*(undefined1 *)((long)psVar14 + sStack_80)" (* "*") (cast_expression "(undefined1 *)((long)psVar14 + sStack_80)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)psVar14 + sStack_80)" (( "(") (binary_expression "(long)psVar14 + sStack_80" (cast_expression "(long)psVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "psVar14")) (+ "+") (identifier "sStack_80")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = sStack_80;" (assignment_expression "local_50 = sStack_80" (identifier "local_50") (= "=") (identifier "sStack_80")) (; ";")) (expression_statement "iVar9 = FUN_001ac380(param_2,&local_58);" (assignment_expression "iVar9 = FUN_001ac380(param_2,&local_58)" (identifier "iVar9") (= "=") (call_expression "FUN_001ac380(param_2,&local_58)" (identifier "FUN_001ac380") (argument_list "(param_2,&local_58)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (; ";")) (if_statement "if (local_58 != &local_48) {\n    FUN_002dac70();\n  }" (if "if") (parenthesized_expression "(local_58 != &local_48)" (( "(") (binary_expression "local_58 != &local_48" (identifier "local_58") (!= "!=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) () ")")) (compound_statement "{\n    FUN_002dac70();\n  }" ({ "{") (expression_statement "FUN_002dac70();" (call_expression "FUN_002dac70()" (identifier "FUN_002dac70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar9 != 0) {\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;\n    iStack_60 = iVar9;\n  }" ({ "{") (expression_statement "*(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;" (assignment_expression "*(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2" (pointer_expression "*(byte *)(param_1 + 0xc9)" (* "*") (cast_expression "(byte *)(param_1 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc9)" (( "(") (binary_expression "param_1 + 0xc9" (identifier "param_1") (+ "+") (number_literal "0xc9")) () ")")))) (= "=") (binary_expression "*(byte *)(param_1 + 0xc9) | 2" (pointer_expression "*(byte *)(param_1 + 0xc9)" (* "*") (cast_expression "(byte *)(param_1 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc9)" (( "(") (binary_expression "param_1 + 0xc9" (identifier "param_1") (+ "+") (number_literal "0xc9")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (expression_statement "iStack_60 = iVar9;" (assignment_expression "iStack_60 = iVar9" (identifier "iStack_60") (= "=") (identifier "iVar9")) (; ";")) (} "}"))) (labeled_statement "LAB_00226b96:\n  puVar3 = *(undefined8 **)(param_1 + 0x90);" (statement_identifier "LAB_00226b96") (: ":") (expression_statement "puVar3 = *(undefined8 **)(param_1 + 0x90);" (assignment_expression "puVar3 = *(undefined8 **)(param_1 + 0x90)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined8 **)(param_1 + 0x90)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x90)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")"))))) (; ";"))) (if_statement "if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }" (if "if") (parenthesized_expression "(puVar3 != *(undefined8 **)(param_1 + 0x98))" (( "(") (binary_expression "puVar3 != *(undefined8 **)(param_1 + 0x98)" (identifier "puVar3") (!= "!=") (pointer_expression "*(undefined8 **)(param_1 + 0x98)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x98)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x98)" (( "(") (binary_expression "param_1 + 0x98" (identifier "param_1") (+ "+") (number_literal "0x98")) () ")"))))) () ")")) (compound_statement "{\n    *puVar3 = CONCAT44(iStack_74,local_78);\n    puVar3[1] = uStack_70;\n    puVar3[2] = lStack_68;\n    puVar3[3] = CONCAT44(uStack_5c,iStack_60);\n    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;\n    return psVar11;\n  }" ({ "{") (expression_statement "*puVar3 = CONCAT44(iStack_74,local_78);" (assignment_expression "*puVar3 = CONCAT44(iStack_74,local_78)" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (call_expression "CONCAT44(iStack_74,local_78)" (identifier "CONCAT44") (argument_list "(iStack_74,local_78)" (( "(") (identifier "iStack_74") (, ",") (identifier "local_78") () ")")))) (; ";")) (expression_statement "puVar3[1] = uStack_70;" (assignment_expression "puVar3[1] = uStack_70" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uStack_70")) (; ";")) (expression_statement "puVar3[2] = lStack_68;" (assignment_expression "puVar3[2] = lStack_68" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "lStack_68")) (; ";")) (expression_statement "puVar3[3] = CONCAT44(uStack_5c,iStack_60);" (assignment_expression "puVar3[3] = CONCAT44(uStack_5c,iStack_60)" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "CONCAT44(uStack_5c,iStack_60)" (identifier "CONCAT44") (argument_list "(uStack_5c,iStack_60)" (( "(") (identifier "uStack_5c") (, ",") (identifier "iStack_60") () ")")))) (; ";")) (expression_statement "*(undefined8 **)(param_1 + 0x90) = puVar3 + 4;" (assignment_expression "*(undefined8 **)(param_1 + 0x90) = puVar3 + 4" (pointer_expression "*(undefined8 **)(param_1 + 0x90)" (* "*") (cast_expression "(undefined8 **)(param_1 + 0x90)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")")))) (= "=") (binary_expression "puVar3 + 4" (identifier "puVar3") (+ "+") (number_literal "4"))) (; ";")) (return_statement "return psVar11;" (return "return") (identifier "psVar11") (; ";")) (} "}"))) (expression_statement "FUN_0020a990(param_1 + 0x88,puVar3,&local_78);" (call_expression "FUN_0020a990(param_1 + 0x88,puVar3,&local_78)" (identifier "FUN_0020a990") (argument_list "(param_1 + 0x88,puVar3,&local_78)" (( "(") (binary_expression "param_1 + 0x88" (identifier "param_1") (+ "+") (number_literal "0x88")) (, ",") (identifier "puVar3") (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) () ")"))) (; ";")) (return_statement "return psVar11;" (return "return") (identifier "psVar11") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: add_input_section<32, false>
   DWARF original prototype: off_t add_input_section<32,_false>(Output_section * this, Layout *
   layout, Sized_relobj_file<32,_false> * object, uint shndx, char * secname, Shdr<32,_false> *
   shdr, uint reloc_shndx, bool have_sections_script) */

type_1 __thiscall
gold::type_12::add_input_section<32,_false>
          (type_12 *this,Layout *layout,Sized_relobj_file<32,_false> *object,type_8 var_5,
          char *secname,Shdr<32,_false> *shdr,type_8 var_18,bool have_sections_script)

{
  type_15 *var_6;
  type_2 *pp_Var2;
  type_3 *var_2;
  type_2 var_4;
  type_4 __position;
  type_5 *var_20;
  type_6 var_7;
  type_7 keeps_input_sections;
  char var_40;
  type_8 var_15;
  type_6 var_30;
  type_9 var_29;
  size_t var_44;
  char *pcVar10;
  type_1 var_25;
  char *format;
  type_10 *this_00;
  type_9 var_27;
  type_2 p_Var13;
  type_2 p_Var14;
  long var_11;
  var_1<32> *pSVar16;
  int var_41;
  type_6 var_3;
  type_6 var_10;
  type_11 *var_12;
  type_11 *var_13;
  type_12 *this_01;
  bool var_14;
  bool bVar22;
  type_11 var_23;
  uint64_t local_a0;
  type_13 __dnew;
  type_14 fill_data;
  type_7 var_42 [40];
  
  var_23 = 0;
  pSVar16 = shdr->p_;
  var_3 = (type_6)pSVar16->sh_addralign;
  var_30 = (type_6)pSVar16->sh_size;
  var_2 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.compressed_sections_;
  if (var_2 == (type_3 *)0x0) {
LAB_002269ca:
    var_7 = var_3 - 1 & var_3;
  }
  else {
    var_6 = &(var_2->_M_t)._M_impl.super__Rb_tree_header;
    var_4 = (var_2->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;
    p_Var13 = &var_6->_M_header;
    if (var_4 == (type_2)0x0) goto LAB_002269ca;
    do {
      while (p_Var14 = var_4, var_5 <= p_Var14[1]._M_color) {
        var_4 = p_Var14->_M_left;
        p_Var13 = p_Var14;
        if (p_Var14->_M_left == (type_2)0x0) goto LAB_002269bb;
      }
      pp_Var2 = &p_Var14->_M_right;
      var_4 = *pp_Var2;
      p_Var14 = p_Var13;
    } while (*pp_Var2 != (type_2)0x0);
LAB_002269bb:
    if ((var_6 == (type_15 *)p_Var14) ||
       (var_5 < (type_8)((type_15 *)p_Var14)->_M_node_count)) goto LAB_002269ca;
    var_30 = *(type_6 *)((long)p_Var14 + 0x28);
    var_3 = *(type_6 *)((type_7 *)((long)p_Var14 + 0x28) + 0x10);
    var_7 = var_3 - 1 & var_3;
  }
  var_10 = var_3;
  if (var_7 != 0) {
    pcVar10 = (char *)var_8("invalid alignment %lu for section \"%s\"");
    var_10 = 1;
    Object::var_9((type_16 *)object,pcVar10,var_3,secname);
    pSVar16 = shdr->p_;
  }
  var_14 = this->addralign_ < var_10;
  bVar22 = this->addralign_ == var_10;
  if (var_14) {
    this->addralign_ = var_10;
  }
  var_11 = 0xb;
  var_15 = pSVar16->sh_flags;
  var_12 = (type_11 *)secname;
  var_13 = (type_11 *)".debug_str";
  do {
    if (var_11 == 0) break;
    var_11 = var_11 + -1;
    var_14 = *var_12 < *var_13;
    bVar22 = *var_12 == *var_13;
    var_12 = var_12 + (type_6)var_23 * -2 + 1;
    var_13 = var_13 + (type_6)var_23 * -2 + 1;
  } while (bVar22);
  if ((!var_14 && !bVar22) == var_14) {
    local_a0 = 1;
    var_15 = var_15 | 0x30;
  }
  else {
    local_a0 = (uint64_t)pSVar16->sh_entsize;
  }
  this_01 = this;
  var_16(this,(type_6)var_15);
  if ((this->field_0xca & 2) == 0) {
    var_17(this_01,local_a0);
  }
  if (((((var_15 & 0x10) != 0) && (var_18 == 0)) && (shdr->p_->sh_size != 0)) &&
     (var_14 = Parameters::var_19(parameters), !var_14)) {
    if (((this->field_0xca & 0x10) != 0) || (have_sections_script)) {
      keeps_input_sections = true;
    }
    else {
      var_20 = parameters->target_;
      if (var_20 == (type_5 *)0x0) goto LAB_00227090;
      if ((parameters->options_ == (type_17 *)0x0) ||
         (keeps_input_sections = true, (parameters->debug_ & 8) == 0)) {
        if (*(type_18 **)(*(long *)var_20 + 0xe0) == type_5::var_21) {
          keeps_input_sections = type_5::var_21(var_20);
        }
        else {
          keeps_input_sections = (**(type_18 **)(*(long *)var_20 + 0xe0))();
        }
      }
    }
    var_14 = var_22
                       (this,(type_19 *)object,var_5,(type_6)var_15,local_a0,var_10,
                        (bool)keeps_input_sections);
    if (var_14) {
      return -1;
    }
  }
  var_23 = this->field_0xca;
  if ((var_23 & 0x20) != 0) {
    var_25 = Free_list::var_24(&this->free_list_,var_30,var_10,0);
    if (var_25 != -1) {
      return var_25;
    }
    pcVar10 = this->name_;
    format = (char *)var_8("out of patch space in section %s; relink with --incremental-full");
                    /* WARNING: Subroutine does not return */
    var_26(format,pcVar10);
  }
  var_27 = (type_9)(this->super_Output_data).data_size_;
  var_29 = var_27;
  if (var_10 != 0) {
    var_29 = (type_9)((type_6)(var_27 + (var_10 - 1)) & -var_10);
  }
  if (((this->super_Output_data).field_0x20 & 2) != 0) {
                    /* WARNING: Subroutine does not return */
    var_28("../../gold/output.h",0x231,"set_current_data_size_for_child");
  }
  (this->super_Output_data).data_size_ = (type_1)(var_29 + var_30);
  if (((var_23 & 1) != 0) || (have_sections_script)) {
LAB_00226a9c:
    if (((long)var_29 <= (long)var_27) || ((var_23 & 1) != 0)) goto LAB_00226aaa;
    if (!have_sections_script) {
      if ((var_15 & 4) != 0) {
LAB_00226d8d:
        var_20 = parameters->target_;
        if (var_20 == (type_5 *)0x0) goto LAB_00227090;
        if (*(char *)(*(long *)(var_20 + 8) + 0xe) != '\0') {
          var_42._8_8_ = (long)var_29 - (long)var_27;
          if ((this->input_sections_).
              super__Vector_base<gold::type_12::var_31,_std::var_35<gold::type_12::var_31>var_32>
              ._M_impl._M_finish ==
              (this->input_sections_).
              super__Vector_base<gold::type_12::var_31,_std::var_35<gold::type_12::var_31>var_32>
              ._M_impl._M_start) {
            var_42._0_8_ = var_27;
            std::vector<gold::Output_section::var_33,_std::var_35<gold::Output_section::var_33>var_32>::
            emplace_back<gold::Output_section::var_33>(&this->fills_,(var_33 *)var_42);
            var_23 = this->field_0xca;
          }
          else {
            (**(type_18 **)(*(long *)var_20 + 0x30))(&fill_data);
                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */
            this_00 = (type_10 *)var_34(0x58);
                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */
            Output_data_const::type_10(this_00,&fill_data,1);
            var_42._24_4_ = 0;
            var_42._0_8_ = (type_9)0xffffffff;
            var_42._8_8_ = 0;
            var_42._16_8_ = this_00;
                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */
            std::
            vector<gold::Output_section::var_31,_std::var_35<gold::Output_section::var_31>var_32>
            ::emplace_back<gold::Output_section::var_31>
                      (&this->input_sections_,(var_31 *)var_42);
            if ((anon_union_16_2_edb7204a_for_basic_string<var_36,_std::char_traits<var_36>,_std::var_35<var_36>var_32>var_37
                 *)var_38(fill_data._M_dataplus._M_p._4_4_,(type_8)fill_data._M_dataplus._M_p) !=
                &fill_data.field_2) {
              var_39((type_7 *)
                              var_38(fill_data._M_dataplus._M_p._4_4_,
                                       (type_8)fill_data._M_dataplus._M_p));
            }
            var_23 = this->field_0xca;
          }
        }
      }
LAB_00226e42:
      if ((var_23 & 0x10) != 0) goto LAB_00226aba;
      goto LAB_00226e4b;
    }
  }
  else {
    if ((var_15 & 4) == 0) {
      if ((long)var_27 < (long)var_29) goto LAB_00226e42;
    }
    else {
      var_20 = parameters->target_;
      if (var_20 == (type_5 *)0x0) goto LAB_00227090;
      if (*(char *)(*(long *)(var_20 + 8) + 0xe) == '\0') {
        if ((long)var_27 < (long)var_29) goto LAB_00226d8d;
      }
      else {
        if ((parameters->options_ == (type_17 *)0x0) || ((parameters->debug_ & 8) == 0)) {
          if (*(type_18 **)(*(long *)var_20 + 0xe0) == type_5::var_21) {
            var_40 = type_5::var_21(var_20);
          }
          else {
            var_40 = (**(type_18 **)(*(long *)var_20 + 0xe0))();
          }
          if ((var_40 == '\0') && (layout->section_ordering_specified_ == false)) {
            var_23 = this->field_0xca;
            goto LAB_00226a9c;
          }
        }
        if ((this->fills_).
            super__Vector_base<gold::type_12::var_33,_std::var_35<gold::type_12::var_33>var_32>
            ._M_impl._M_finish !=
            (this->fills_).
            super__Vector_base<gold::type_12::var_33,_std::var_35<gold::type_12::var_33>var_32>
            ._M_impl._M_start) {
                    /* WARNING: Subroutine does not return */
          var_28("../../gold/output.cc",0x9eb,"add_input_section");
        }
        var_23 = this->field_0xca | 1;
        this->field_0xca = var_23;
      }
    }
LAB_00226aaa:
    if (((var_23 & 0x10) == 0) && (!have_sections_script)) {
LAB_00226e4b:
      if (((this->input_sections_).
           super__Vector_base<gold::type_12::var_31,_std::var_35<gold::type_12::var_31>var_32>
           ._M_impl._M_finish ==
           (this->input_sections_).
           super__Vector_base<gold::type_12::var_31,_std::var_35<gold::type_12::var_31>var_32>
           ._M_impl._M_start) && (((this->field_0xc9 & 4) == 0 && ((this->field_0xc9 & 8) == 0)))) {
        if (parameters->options_ == (type_17 *)0x0) goto LAB_00227060;
        if ((parameters->options_->Map_).user_set_via_option == false) {
          var_20 = parameters->target_;
          if (var_20 == (type_5 *)0x0) {
LAB_00227090:
                    /* WARNING: Subroutine does not return */
            var_28("../../gold/parameters.h",0x69,"target");
          }
          if ((parameters->debug_ & 8) == 0) {
            if (*(type_18 **)(*(long *)var_20 + 0xe0) == type_5::var_21) {
              var_40 = type_5::var_21(var_20);
            }
            else {
              var_40 = (**(type_18 **)(*(long *)var_20 + 0xe0))();
            }
            if ((var_40 == '\0') && (layout->section_ordering_specified_ == false)) {
              return (type_1)var_29;
            }
          }
        }
      }
    }
  }
LAB_00226aba:
  var_11 = 0;
  if (var_10 != 0) {
    for (; (var_10 >> var_11 & 1) == 0; var_11 = var_11 + 1) {
    }
  }
  var_41 = (int)var_11;
  if (var_10 == 0) {
    var_41 = -1;
  }
  fill_data.field_2._8_4_ = 0;
  fill_data._M_dataplus._M_p._4_4_ = var_41 + 1;
  fill_data._M_dataplus._M_p._0_4_ = var_5;
  if (var_5 + 4 < 4) {
                    /* WARNING: Subroutine does not return */
    var_28("../../gold/output.h",0xe9a,"Input_section");
  }
  fill_data._M_string_length = var_30;
  fill_data.field_2._M_allocated_capacity = (type_13)object;
  if (parameters->options_ == (type_17 *)0x0) {
LAB_00227060:
                    /* WARNING: Subroutine does not return */
    var_28("../../gold/parameters.h",0x5c,"options");
  }
  if ((parameters->options_->section_ordering_file_).value == (char *)0x0) goto LAB_00226b96;
  var_27 = var_42 + 0x10;
  var_42._0_8_ = var_27;
  var_44 = var_43(secname);
  __dnew = var_44;
  if (var_44 < 0x10) {
    if (var_44 == 1) {
      var_42[0x10] = *secname;
    }
    else if (var_44 != 0) goto LAB_00226f36;
  }
  else {
    var_27 = (type_9)std::string::var_45((type_14 *)var_42,&__dnew,0);
    var_42._16_8_ = __dnew;
    var_42._0_8_ = var_27;
LAB_00226f36:
    var_46(var_27,secname,var_44);
    var_27 = (type_9)var_42._0_8_;
  }
  var_27[__dnew] = '\0';
  var_42._8_8_ = __dnew;
                    /* try { // try from 00226b6a to 00226b6e has its CatchHandler @ 002270c0 */
  var_15 = Layout::var_47(layout,(type_14 *)var_42);
  if ((type_7 *)var_42._0_8_ != var_42 + 0x10) {
    var_39((void *)var_42._0_8_);
  }
  if (var_15 != 0) {
    this->field_0xc9 = this->field_0xc9 | 2;
    fill_data.field_2._8_4_ = var_15;
  }
LAB_00226b96:
  __position._M_current =
       (this->input_sections_).
       super__Vector_base<gold::type_12::var_31,_std::var_35<gold::Output_section::var_31>var_32>
       ._M_impl._M_finish;
  if (__position._M_current ==
      (this->input_sections_).
      super__Vector_base<gold::type_12::var_31,_std::var_35<gold::type_12::var_31>var_32>
      ._M_impl._M_end_of_storage) {
    std::
    vector<gold::Output_section::var_31,_std::var_35<gold::Output_section::var_31>var_32>
    ::_M_realloc_insert<const_gold::Output_section::var_31&>
              (&this->input_sections_,__position,(var_31 *)&fill_data);
  }
  else {
    (__position._M_current)->shndx_ =
         (int)var_38(fill_data._M_dataplus._M_p._4_4_,(type_8)fill_data._M_dataplus._M_p);
    (__position._M_current)->p2align_ =
         (int)(var_38(fill_data._M_dataplus._M_p._4_4_,(type_8)fill_data._M_dataplus._M_p) >> 0x20);
    ((__position._M_current)->u1_).entsize = fill_data._M_string_length;
    (__position._M_current)->u2_ =
         (type_20)fill_data.field_2._M_allocated_capacity;
    *(type_6 *)&(__position._M_current)->section_order_index_ =
         var_38(fill_data.field_2._12_4_,fill_data.field_2._8_4_);
    (this->input_sections_).
    super__Vector_base<gold::Output_section::var_31,_std::var_35<gold::Output_section::var_31>var_32>
    ._M_impl._M_finish = __position._M_current + 1;
  }
  return (type_1)var_29;
}


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

size_t * MASKED(long param_1,long param_2,long param_3,uint param_4,byte *param_5,
                     long *param_6,int param_7,char param_8)

{
  long *plVar1;
  undefined4 uVar2;
  undefined8 *puVar3;
  code *pcVar4;
  ulong uVar5;
  long lVar6;
  undefined1 uVar7;
  char cVar8;
  int iVar9;
  ulong uVar10;
  size_t *psVar11;
  size_t sVar12;
  undefined8 uVar13;
  size_t *psVar14;
  long lVar15;
  long lVar16;
  long lVar17;
  long lVar18;
  ulong uVar19;
  ulong uVar20;
  byte *pbVar21;
  byte *pbVar22;
  uint uVar23;
  bool bVar24;
  bool bVar25;
  byte bVar26;
  size_t sStack_80;
  uint local_78;
  int iStack_74;
  ulong uStack_70;
  long lStack_68;
  int iStack_60;
  undefined4 uStack_5c;
  size_t *local_58;
  size_t local_50;
  size_t local_48;
  undefined4 local_40;
  
  bVar26 = 0;
  lVar18 = *param_6;
  uVar19 = (ulong)*(uint *)(lVar18 + 0x20);
  uVar10 = (ulong)*(uint *)(lVar18 + 0x14);
  lVar17 = *(long *)(param_3 + 0x48);
  if (lVar17 == 0) {
LAB_002269ca:
    uVar5 = uVar19 - 1 & uVar19;
  }
  else {
    lVar6 = *(long *)(lVar17 + 0x10);
    lVar15 = lVar17 + 8;
    if (*(long *)(lVar17 + 0x10) == 0) goto LAB_002269ca;
    do {
      while (lVar16 = lVar6, param_4 <= *(uint *)(lVar16 + 0x20)) {
        lVar6 = *(long *)(lVar16 + 0x10);
        lVar15 = lVar16;
        if (*(long *)(lVar16 + 0x10) == 0) goto LAB_002269bb;
      }
      plVar1 = (long *)(lVar16 + 0x18);
      lVar6 = *plVar1;
      lVar16 = lVar15;
    } while (*plVar1 != 0);
LAB_002269bb:
    if ((lVar17 + 8 == lVar16) || (param_4 < *(uint *)(lVar16 + 0x20))) goto LAB_002269ca;
    uVar10 = *(ulong *)(lVar16 + 0x28);
    uVar19 = *(ulong *)(lVar16 + 0x38);
    uVar5 = uVar19 - 1 & uVar19;
  }
  uVar20 = uVar19;
  if (uVar5 != 0) {
    uVar13 = gettext("invalid alignment %lu for section \"%s\"");
    uVar20 = 1;
    FUN_001bd150(param_3,uVar13,uVar19,param_5);
    lVar18 = *param_6;
  }
  bVar24 = *(ulong *)(param_1 + 0x30) < uVar20;
  bVar25 = *(ulong *)(param_1 + 0x30) == uVar20;
  if (bVar24) {
    *(ulong *)(param_1 + 0x30) = uVar20;
  }
  lVar17 = 0xb;
  uVar23 = *(uint *)(lVar18 + 8);
  uVar2 = *(undefined4 *)(lVar18 + 0x24);
  pbVar21 = param_5;
  pbVar22 = (byte *)".debug_str";
  do {
    if (lVar17 == 0) break;
    lVar17 = lVar17 + -1;
    bVar24 = *pbVar21 < *pbVar22;
    bVar25 = *pbVar21 == *pbVar22;
    pbVar21 = pbVar21 + (ulong)bVar26 * -2 + 1;
    pbVar22 = pbVar22 + (ulong)bVar26 * -2 + 1;
  } while (bVar25);
  if ((!bVar24 && !bVar25) == bVar24) {
    uVar2 = 1;
    uVar23 = uVar23 | 0x30;
  }
  FUN_001f5d70(param_1,uVar23);
  if ((*(byte *)(param_1 + 0xca) & 2) == 0) {
    FUN_001f48e0();
  }
  if (((uVar23 & 0x10) != 0) && (param_7 == 0)) goto LAB_00226c80;
  while (bVar26 = *(byte *)(param_1 + 0xca), (bVar26 & 0x20) != 0) {
    psVar14 = (size_t *)FUN_001a4800(param_1 + 0xf8,uVar10,uVar20,0);
    if (psVar14 != (size_t *)0xffffffffffffffff) {
      return psVar14;
    }
    uVar20 = *(ulong *)(param_1 + 0x28);
    uVar13 = gettext("out of patch space in section %s; relink with --incremental-full");
    FUN_00178280(uVar13,uVar20);
    param_6 = (long *)0xffffffffffffffff;
LAB_00226c80:
    if ((*(int *)(*param_6 + 0x14) != 0) && (cVar8 = FUN_002379a0(PTR_DAT_0043e6b0), cVar8 == '\0'))
    {
      if (((*(byte *)(param_1 + 0xca) & 0x10) == 0) && (param_8 == '\0')) {
        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) goto LAB_00227090;
        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) ||
           (uVar7 = 1, (PTR_DAT_0043e6b0[0x24] & 8) == 0)) {
          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);
          if (pcVar4 == FUN_001b1290) {
            uVar7 = FUN_001f4a70();
          }
          else {
            uVar7 = (*pcVar4)();
          }
        }
      }
      else {
        uVar7 = 1;
      }
      cVar8 = FUN_001fb0e0(param_1,param_3,param_4,uVar23,uVar2,uVar20,uVar7);
      if (cVar8 != '\0') {
        return (size_t *)0xffffffffffffffff;
      }
    }
  }
  psVar14 = *(size_t **)(param_1 + 0x10);
  psVar11 = psVar14;
  if (uVar20 != 0) {
    psVar11 = (size_t *)((uVar20 - 1) + (long)psVar14 & -uVar20);
  }
  if ((*(byte *)(param_1 + 0x20) & 2) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/output.h",0x231,"set_current_data_size_for_child");
  }
  *(ulong *)(param_1 + 0x10) = (long)psVar11 + uVar10;
  if (((bVar26 & 1) == 0) && (param_8 == '\0')) {
    if ((uVar23 & 4) == 0) {
      if ((long)psVar11 <= (long)psVar14) goto LAB_00226aaa;
LAB_00226e42:
      if ((bVar26 & 0x10) != 0) goto LAB_00226aba;
    }
    else {
      plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);
      if (plVar1 == (long *)0x0) goto LAB_00227090;
      if (*(char *)(plVar1[1] + 0xe) == '\0') {
        if ((long)psVar14 < (long)psVar11) {
LAB_00226d8d:
          plVar1 = *(long **)(PTR_DAT_0043e6b0 + 0x18);
          if (plVar1 == (long *)0x0) goto LAB_00227090;
          if (*(char *)(plVar1[1] + 0xe) != '\0') {
            local_50 = (long)psVar11 - (long)psVar14;
            if (*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) {
              local_58 = psVar14;
              FUN_00213c70(param_1 + 0xa8,&local_58);
              bVar26 = *(byte *)(param_1 + 0xca);
            }
            else {
              (**(code **)(*plVar1 + 0x30))(&local_78);
                    /* try { // try from 00226dd5 to 00226dd9 has its CatchHandler @ 002270ca */
              sVar12 = FUN_002d94a0(0x58);
                    /* try { // try from 00226dea to 00226dee has its CatchHandler @ 002270c5 */
              FUN_001ffa20(sVar12,&local_78,1);
              local_40 = 0;
              local_58 = (size_t *)0xffffffff;
              local_50 = 0;
              local_48 = sVar12;
                    /* try { // try from 00226e20 to 00226e24 has its CatchHandler @ 002270ca */
              FUN_0020d8b0(param_1 + 0x88,&local_58);
              if ((long *)CONCAT44(iStack_74,local_78) != &lStack_68) {
                FUN_002dac70();
              }
              bVar26 = *(byte *)(param_1 + 0xca);
            }
          }
          goto LAB_00226e42;
        }
      }
      else {
        if ((*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) || ((PTR_DAT_0043e6b0[0x24] & 8) == 0)) {
          if (*(code **)(*plVar1 + 0xe0) == FUN_001b1290) {
            cVar8 = FUN_001f4a70();
          }
          else {
            cVar8 = (**(code **)(*plVar1 + 0xe0))();
          }
          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {
            bVar26 = *(byte *)(param_1 + 0xca);
            goto LAB_00226a9c;
          }
        }
        if (*(long *)(param_1 + 0xb0) != *(long *)(param_1 + 0xa8)) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/output.cc",0x9eb,"add_input_section");
        }
        bVar26 = *(byte *)(param_1 + 0xca) | 1;
        *(byte *)(param_1 + 0xca) = bVar26;
      }
LAB_00226aaa:
      if (((bVar26 & 0x10) != 0) || (param_8 != '\0')) goto LAB_00226aba;
    }
    if ((*(long *)(param_1 + 0x90) == *(long *)(param_1 + 0x88)) &&
       (((*(byte *)(param_1 + 0xc9) & 4) == 0 && ((*(byte *)(param_1 + 0xc9) & 8) == 0)))) {
      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_00227060;
      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x3b38) == '\0') {
        if (*(long **)(PTR_DAT_0043e6b0 + 0x18) == (long *)0x0) {
LAB_00227090:
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/parameters.h",0x69,"target");
        }
        if ((PTR_DAT_0043e6b0[0x24] & 8) == 0) {
          pcVar4 = *(code **)(**(long **)(PTR_DAT_0043e6b0 + 0x18) + 0xe0);
          if (pcVar4 == FUN_001b1290) {
            cVar8 = FUN_001f4a70();
          }
          else {
            cVar8 = (*pcVar4)();
          }
          if ((cVar8 == '\0') && (*(char *)(param_2 + 0x371) == '\0')) {
            return psVar11;
          }
        }
      }
    }
  }
  else {
LAB_00226a9c:
    if (((long)psVar11 <= (long)psVar14) || ((bVar26 & 1) != 0)) goto LAB_00226aaa;
    if (param_8 == '\0') {
      if ((uVar23 & 4) != 0) goto LAB_00226d8d;
      goto LAB_00226e42;
    }
  }
LAB_00226aba:
  lVar18 = 0;
  if (uVar20 != 0) {
    for (; (uVar20 >> lVar18 & 1) == 0; lVar18 = lVar18 + 1) {
    }
  }
  iStack_74 = (int)lVar18;
  if (uVar20 == 0) {
    iStack_74 = -1;
  }
  iStack_60 = 0;
  iStack_74 = iStack_74 + 1;
  local_78 = param_4;
  if (param_4 + 4 < 4) {
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/output.h",0xe9a,"Input_section");
  }
  uStack_70 = uVar10;
  lStack_68 = param_3;
  if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {
LAB_00227060:
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/parameters.h",0x5c,"options");
  }
  if (*(long *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x58e8) == 0) goto LAB_00226b96;
  psVar14 = &local_48;
  local_58 = psVar14;
  sVar12 = strlen((char *)param_5);
  sStack_80 = sVar12;
  if (sVar12 < 0x10) {
    if (sVar12 == 1) {
      local_48 = CONCAT71(local_48._1_7_,*param_5);
    }
    else if (sVar12 != 0) goto LAB_00226f36;
  }
  else {
    psVar14 = (size_t *)FUN_002e15a0(&local_58,&sStack_80,0);
    local_48 = sStack_80;
    local_58 = psVar14;
LAB_00226f36:
    memcpy(psVar14,param_5,sVar12);
    psVar14 = local_58;
  }
  *(undefined1 *)((long)psVar14 + sStack_80) = 0;
  local_50 = sStack_80;
                    /* try { // try from 00226b6a to 00226b6e has its CatchHandler @ 002270c0 */
  iVar9 = FUN_001ac380(param_2,&local_58);
  if (local_58 != &local_48) {
    FUN_002dac70();
  }
  if (iVar9 != 0) {
    *(byte *)(param_1 + 0xc9) = *(byte *)(param_1 + 0xc9) | 2;
    iStack_60 = iVar9;
  }
LAB_00226b96:
  puVar3 = *(undefined8 **)(param_1 + 0x90);
  if (puVar3 != *(undefined8 **)(param_1 + 0x98)) {
    *puVar3 = CONCAT44(iStack_74,local_78);
    puVar3[1] = uStack_70;
    puVar3[2] = lStack_68;
    puVar3[3] = CONCAT44(uStack_5c,iStack_60);
    *(undefined8 **)(param_1 + 0x90) = puVar3 + 4;
    return psVar11;
  }
  FUN_0020a990(param_1 + 0x88,puVar3,&local_78);
  return psVar11;
}

