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

Output_section * __thiscall
gold::Layout::layout<32,_false>
          (Layout *this,Sized_relobj_file<32,_false> *object,uint shndx,char *name,
          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)

{
  uint uVar1;
  General_options *pGVar2;
  _Base_ptr p_Var3;
  Script_options *pSVar4;
  ulong uVar5;
  bool bVar6;
  Output_section_order OVar7;
  int iVar8;
  char *pcVar9;
  Output_section *this_00;
  iterator iVar10;
  off_t oVar11;
  long lVar12;
  char cVar13;
  size_t __n;
  Target *pTVar14;
  byte *pbVar15;
  Target *this_01;
  byte *pbVar17;
  uint uVar18;
  undefined1 uVar19;
  bool bVar20;
  undefined1 uVar21;
  bool bVar22;
  byte bVar23;
  char **local_80;
  __node_gen_type __node_gen;
  Key name_key;
  uint local_50;
  undefined1 local_48 [24];
  Target *pTVar16;
  
  bVar23 = 0;
  *off = 0;
  bVar6 = include_section<32,_false>(this,object,name,shdr);
  if (!bVar6) {
    return (Output_section *)0x0;
  }
  pGVar2 = parameters->options_;
  if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;
  if (((pGVar2->relocatable_).value == false) || (uVar1 = shdr->p_->sh_flags, (uVar1 & 0x200) == 0))
  {
    uVar19 = 0;
    uVar21 = (pGVar2->text_unlikely_segment_).value == false;
    if (!(bool)uVar21) {
      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])
                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);
      lVar12 = 0xe;
      pTVar14 = (Target *)".text.unlikely";
      pTVar16 = (Target *)name_key;
      do {
        this_01 = pTVar16;
        if (lVar12 == 0) break;
        lVar12 = lVar12 + -1;
        this_01 = pTVar16 + (ulong)bVar23 * -2 + 1;
        uVar19 = (byte)*pTVar14 < (byte)*pTVar16;
        uVar21 = *pTVar14 == *pTVar16;
        pTVar14 = pTVar14 + (ulong)bVar23 * -2 + 1;
        pTVar16 = this_01;
      } while ((bool)uVar21);
      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {
        if ((undefined1 *)name_key != local_48) {
          this_01 = (Target *)name_key;
          operator_delete((void *)name_key);
        }
        uVar1 = shdr->p_->sh_flags;
        if (parameters->options_ == (General_options *)0x0) goto LAB_001ba803;
        uVar18 = uVar1 & 0xfffff50f;
        if ((parameters->options_->relocatable_).value != false) {
          uVar18 = uVar1 & 0xfffff58f;
        }
        pcVar9 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);
        this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)
        ;
        this_00->field_0xca = this_00->field_0xca | 0x80;
        goto LAB_001ba3f8;
      }
      if ((undefined1 *)name_key != local_48) {
        operator_delete((void *)name_key);
      }
    }
    this_01 = (Target *)&this->section_segment_map_;
    name_key = (Key)object;
    local_50 = shndx;
    iVar10 = std::
             _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>
             ::find((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>
                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);
    if ((_Rb_tree_header *)iVar10._M_node ==
        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {
      this_00 = choose_output_section
                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,
                           ORDER_INVALID,false,false,true);
      if (this_00 == (Output_section *)0x0) {
        return (Output_section *)0x0;
      }
    }
    else {
      uVar1 = shdr->p_->sh_flags;
      if (parameters->options_ == (General_options *)0x0) {
LAB_001ba803:
                    /* WARNING: Subroutine does not return */
        Target::abi_pagesize(this_01);
      }
      uVar18 = uVar1 & 0xfffff50f;
      if ((parameters->options_->relocatable_).value != false) {
        uVar18 = uVar1 & 0xfffff58f;
      }
      pcVar9 = Stringpool_template<char>::add
                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);
      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);
      if (-1 < (char)this_00->field_0xca) {
        this_00->field_0xca = this_00->field_0xca | 0x80;
        p_Var3 = iVar10._M_node[1]._M_left;
        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;
        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;
      }
    }
  }
  else {
    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);
    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)
    ;
  }
LAB_001ba3f8:
  pSVar4 = this->script_options_;
  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;
  pGVar2 = parameters->options_;
  if ((bool)cVar13 != false) {
    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;
    goto LAB_001ba52a;
  }
  if (pGVar2 == (General_options *)0x0) {
LAB_001ba729:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  bVar6 = false;
  bVar22 = (pGVar2->relocatable_).value == false;
  if (!bVar22) goto LAB_001ba620;
  lVar12 = 7;
  pbVar15 = (byte *)".ctors.";
  pbVar17 = (byte *)name;
  do {
    if (lVar12 == 0) break;
    lVar12 = lVar12 + -1;
    bVar6 = *pbVar15 < *pbVar17;
    bVar22 = *pbVar15 == *pbVar17;
    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;
    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;
  } while (bVar22);
  bVar20 = false;
  bVar6 = (!bVar6 && !bVar22) == bVar6;
  if (bVar6) {
LAB_001ba4e0:
    this_00->field_0xc9 = this_00->field_0xc9 | 8;
    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;
    if ((pGVar2->text_reorder_).value == false) {
LAB_001ba75b:
      if (cVar13 != '\0') goto LAB_001ba52a;
      goto LAB_001ba62e;
    }
    if ((bool)cVar13 != false) goto LAB_001ba52a;
LAB_001ba504:
    cVar13 = (pGVar2->relocatable_).value;
    if (this->section_ordering_specified_ != false) goto LAB_001ba636;
    if ((bool)cVar13 == false) {
      __n = 0xe;
      pcVar9 = ".text.unlikely";
      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;
      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {
        local_80 = local_80 + 1;
        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;
        pcVar9 = *local_80;
        __n = strlen(pcVar9);
      }
      this_00->field_0xc9 = this_00->field_0xc9 | 8;
      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;
      goto LAB_001ba75b;
    }
  }
  else {
    lVar12 = 7;
    pbVar15 = (byte *)".dtors.";
    pbVar17 = (byte *)name;
    do {
      if (lVar12 == 0) break;
      lVar12 = lVar12 + -1;
      bVar20 = *pbVar15 < *pbVar17;
      bVar6 = *pbVar15 == *pbVar17;
      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;
      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;
    } while (bVar6);
    bVar22 = false;
    bVar6 = (!bVar20 && !bVar6) == bVar20;
    if (bVar6) goto LAB_001ba4e0;
    lVar12 = 0xc;
    pbVar15 = (byte *)".init_array.";
    pbVar17 = (byte *)name;
    do {
      if (lVar12 == 0) break;
      lVar12 = lVar12 + -1;
      bVar22 = *pbVar15 < *pbVar17;
      bVar6 = *pbVar15 == *pbVar17;
      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;
      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;
    } while (bVar6);
    bVar20 = false;
    bVar6 = (!bVar22 && !bVar6) == bVar22;
    if (bVar6) goto LAB_001ba4e0;
    lVar12 = 0xc;
    pbVar15 = (byte *)".fini_array.";
    pbVar17 = (byte *)name;
    do {
      if (lVar12 == 0) break;
      lVar12 = lVar12 + -1;
      bVar20 = *pbVar15 < *pbVar17;
      bVar6 = *pbVar15 == *pbVar17;
      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;
      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;
    } while (bVar6);
    if ((!bVar20 && !bVar6) == bVar20) goto LAB_001ba4e0;
    bVar6 = false;
    bVar22 = (pGVar2->ctors_in_init_array_).value == false;
    if (!bVar22) {
      lVar12 = 7;
      pbVar15 = (byte *)name;
      pbVar17 = (byte *)".ctors";
      do {
        if (lVar12 == 0) break;
        lVar12 = lVar12 + -1;
        bVar6 = *pbVar15 < *pbVar17;
        bVar22 = *pbVar15 == *pbVar17;
        pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;
        pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;
      } while (bVar22);
      bVar20 = false;
      bVar6 = (!bVar6 && !bVar22) == bVar6;
      if (!bVar6) {
        lVar12 = 7;
        pbVar15 = (byte *)name;
        pbVar17 = (byte *)".dtors";
        do {
          if (lVar12 == 0) break;
          lVar12 = lVar12 + -1;
          bVar20 = *pbVar15 < *pbVar17;
          bVar6 = *pbVar15 == *pbVar17;
          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;
          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;
        } while (bVar6);
        if ((!bVar20 && !bVar6) != bVar20) goto LAB_001ba620;
      }
      goto LAB_001ba4e0;
    }
LAB_001ba620:
    if ((pGVar2->text_reorder_).value != false) goto LAB_001ba504;
LAB_001ba62e:
    cVar13 = (pGVar2->relocatable_).value;
LAB_001ba636:
    if (cVar13 == '\0') {
LAB_001ba63e:
      uVar1 = shdr->p_->sh_size;
      bVar6 = uVar1 < 4;
      bVar22 = uVar1 == 4;
      if (4 < uVar1) {
        lVar12 = 7;
        pbVar15 = (byte *)name;
        pbVar17 = (byte *)".ctors";
        do {
          if (lVar12 == 0) break;
          lVar12 = lVar12 + -1;
          bVar6 = *pbVar15 < *pbVar17;
          bVar22 = *pbVar15 == *pbVar17;
          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;
          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;
        } while (bVar22);
        bVar20 = false;
        bVar6 = (!bVar6 && !bVar22) == bVar6;
        if (bVar6) {
LAB_001ba680:
          bVar22 = false;
          lVar12 = 0xc;
          pbVar15 = (byte *)this_00->name_;
          pbVar17 = (byte *)".init_array";
          do {
            if (lVar12 == 0) break;
            lVar12 = lVar12 + -1;
            bVar22 = *pbVar15 < *pbVar17;
            bVar6 = *pbVar15 == *pbVar17;
            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;
            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;
          } while (bVar6);
          bVar6 = (!bVar22 && !bVar6) == bVar22;
          if (!bVar6) goto LAB_001ba6e0;
        }
        else {
          lVar12 = 7;
          pbVar15 = (byte *)".ctors.";
          pbVar17 = (byte *)name;
          do {
            if (lVar12 == 0) break;
            lVar12 = lVar12 + -1;
            bVar20 = *pbVar15 < *pbVar17;
            bVar6 = *pbVar15 == *pbVar17;
            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;
            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;
          } while (bVar6);
          bVar6 = (!bVar20 && !bVar6) == bVar20;
          if (bVar6) goto LAB_001ba680;
LAB_001ba6e0:
          bVar22 = false;
          lVar12 = 7;
          pbVar15 = (byte *)name;
          pbVar17 = (byte *)".dtors";
          do {
            if (lVar12 == 0) break;
            lVar12 = lVar12 + -1;
            bVar22 = *pbVar15 < *pbVar17;
            bVar6 = *pbVar15 == *pbVar17;
            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;
            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;
          } while (bVar6);
          bVar20 = false;
          bVar6 = (!bVar22 && !bVar6) == bVar22;
          if (!bVar6) {
            lVar12 = 7;
            pbVar15 = (byte *)".dtors.";
            pbVar17 = (byte *)name;
            do {
              if (lVar12 == 0) break;
              lVar12 = lVar12 + -1;
              bVar20 = *pbVar15 < *pbVar17;
              bVar6 = *pbVar15 == *pbVar17;
              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;
              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;
            } while (bVar6);
            bVar6 = (!bVar20 && !bVar6) == bVar20;
            if (!bVar6) goto LAB_001ba528;
          }
          bVar22 = false;
          lVar12 = 0xc;
          pbVar15 = (byte *)this_00->name_;
          pbVar17 = (byte *)".fini_array";
          do {
            if (lVar12 == 0) break;
            lVar12 = lVar12 + -1;
            bVar22 = *pbVar15 < *pbVar17;
            bVar6 = *pbVar15 == *pbVar17;
            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;
            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;
          } while (bVar6);
          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;
        }
        __node_gen._M_h = (__hashtable_alloc *)&ctors_sections_in_init_array;
        name_key = (Key)object;
        local_50 = shndx;
        std::
        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
        ::
        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>
                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);
        cVar13 = (this->script_options_->script_sections_).saw_sections_clause_;
        goto LAB_001ba52a;
      }
    }
  }
LAB_001ba528:
  cVar13 = false;
LAB_001ba52a:
  uVar5 = this_00->flags_;
  oVar11 = Output_section::add_input_section<32,_false>
                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar13);
  *off = oVar11;
  if (((uVar5 & 2) != 0) && (((uint)uVar5 & 5) != ((uint)this_00->flags_ & 5))) {
    OVar7 = default_section_order(this,this_00,false);
    this_00->order_ = OVar7;
  }
  this->have_added_input_section_ = true;
  return this_00;
}



long FUN_001ba1a0(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,
                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)

{
  long lVar1;
  ulong uVar2;
  char cVar3;
  undefined4 uVar4;
  int iVar5;
  undefined8 uVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  char *__s1;
  size_t __n;
  byte *pbVar10;
  byte *pbVar11;
  uint uVar12;
  uint uVar13;
  undefined1 uVar14;
  bool bVar15;
  bool bVar16;
  undefined1 uVar17;
  bool bVar18;
  byte bVar19;
  undefined **local_80;
  undefined *local_60;
  byte *local_58;
  undefined4 local_50;
  byte local_48 [24];
  
  bVar19 = 0;
  *param_9 = 0;
  cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);
  if (cVar3 == '\0') {
    return 0;
  }
  lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);
  if (lVar7 == 0) goto LAB_001ba729;
  if ((*(char *)(lVar7 + 0x5051) == '\0') ||
     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {
    uVar14 = 0;
    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';
    if (!(bool)uVar17) {
      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);
      lVar7 = 0xe;
      pbVar10 = (byte *)".text.unlikely";
      pbVar11 = local_58;
      do {
        if (lVar7 == 0) break;
        lVar7 = lVar7 + -1;
        uVar14 = *pbVar10 < *pbVar11;
        uVar17 = *pbVar10 == *pbVar11;
        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
      } while ((bool)uVar17);
      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {
        if (local_58 != local_48) {
          FUN_002dac60(local_58);
        }
        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;
        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;
        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {
          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;
        }
        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);
        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);
        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;
        goto LAB_001ba3f8;
      }
      if (local_58 != local_48) {
        FUN_002dac60(local_58);
      }
    }
    local_58 = param_2;
    local_50 = param_3;
    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);
    if (lVar9 == param_1 + 1000) {
      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);
      if (lVar7 == 0) {
        return 0;
      }
    }
    else {
      uVar12 = *(uint *)(*param_5 + 8);
      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {
LAB_001ba803:
                    /* WARNING: Subroutine does not return */
        FUN_001a4340();
      }
      uVar13 = uVar12 & 0xfffff50f;
      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {
        uVar13 = uVar12 & 0xfffff58f;
      }
      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);
      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);
      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {
        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;
        lVar9 = *(long *)(lVar9 + 0x30);
        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);
        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);
      }
    }
  }
  else {
    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);
    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);
  }
LAB_001ba3f8:
  lVar9 = *(long *)(param_1 + 8);
  cVar3 = *(char *)(lVar9 + 0x148);
  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);
  if (cVar3 != '\0') {
    if (lVar1 == 0) goto LAB_001ba729;
    goto LAB_001ba52a;
  }
  if (lVar1 == 0) {
LAB_001ba729:
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/parameters.h",0x5c,"options");
  }
  bVar15 = false;
  bVar18 = *(char *)(lVar1 + 0x5051) == '\0';
  if (!bVar18) goto LAB_001ba620;
  lVar8 = 7;
  pbVar10 = (byte *)".ctors.";
  pbVar11 = param_4;
  do {
    if (lVar8 == 0) break;
    lVar8 = lVar8 + -1;
    bVar15 = *pbVar10 < *pbVar11;
    bVar18 = *pbVar10 == *pbVar11;
    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
  } while (bVar18);
  bVar16 = false;
  bVar15 = (!bVar15 && !bVar18) == bVar15;
  if (bVar15) {
LAB_001ba4e0:
    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;
    cVar3 = *(char *)(lVar9 + 0x148);
    if (*(char *)(lVar1 + 0x62b9) == '\0') {
LAB_001ba75b:
      if (cVar3 != '\0') goto LAB_001ba52a;
      goto LAB_001ba62e;
    }
    if (cVar3 != '\0') goto LAB_001ba52a;
LAB_001ba504:
    cVar3 = *(char *)(lVar1 + 0x5051);
    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;
    if (cVar3 == '\0') {
      __n = 0xe;
      __s1 = ".text.unlikely";
      local_80 = &PTR_s__text_unlikely_00427ee0;
      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {
        local_80 = local_80 + 1;
        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;
        __s1 = *local_80;
        __n = strlen(__s1);
      }
      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;
      cVar3 = *(char *)(lVar9 + 0x148);
      goto LAB_001ba75b;
    }
  }
  else {
    lVar8 = 7;
    pbVar10 = (byte *)".dtors.";
    pbVar11 = param_4;
    do {
      if (lVar8 == 0) break;
      lVar8 = lVar8 + -1;
      bVar16 = *pbVar10 < *pbVar11;
      bVar15 = *pbVar10 == *pbVar11;
      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
    } while (bVar15);
    bVar18 = false;
    bVar15 = (!bVar16 && !bVar15) == bVar16;
    if (bVar15) goto LAB_001ba4e0;
    lVar8 = 0xc;
    pbVar10 = (byte *)".init_array.";
    pbVar11 = param_4;
    do {
      if (lVar8 == 0) break;
      lVar8 = lVar8 + -1;
      bVar18 = *pbVar10 < *pbVar11;
      bVar15 = *pbVar10 == *pbVar11;
      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
    } while (bVar15);
    bVar16 = false;
    bVar15 = (!bVar18 && !bVar15) == bVar18;
    if (bVar15) goto LAB_001ba4e0;
    lVar8 = 0xc;
    pbVar10 = (byte *)".fini_array.";
    pbVar11 = param_4;
    do {
      if (lVar8 == 0) break;
      lVar8 = lVar8 + -1;
      bVar16 = *pbVar10 < *pbVar11;
      bVar15 = *pbVar10 == *pbVar11;
      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
    } while (bVar15);
    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;
    bVar15 = false;
    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';
    if (!bVar18) {
      lVar8 = 7;
      pbVar10 = param_4;
      pbVar11 = (byte *)".ctors";
      do {
        if (lVar8 == 0) break;
        lVar8 = lVar8 + -1;
        bVar15 = *pbVar10 < *pbVar11;
        bVar18 = *pbVar10 == *pbVar11;
        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
      } while (bVar18);
      bVar16 = false;
      bVar15 = (!bVar15 && !bVar18) == bVar15;
      if (!bVar15) {
        lVar8 = 7;
        pbVar10 = param_4;
        pbVar11 = (byte *)".dtors";
        do {
          if (lVar8 == 0) break;
          lVar8 = lVar8 + -1;
          bVar16 = *pbVar10 < *pbVar11;
          bVar15 = *pbVar10 == *pbVar11;
          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
        } while (bVar15);
        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;
      }
      goto LAB_001ba4e0;
    }
LAB_001ba620:
    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;
LAB_001ba62e:
    cVar3 = *(char *)(lVar1 + 0x5051);
LAB_001ba636:
    if (cVar3 == '\0') {
LAB_001ba63e:
      uVar12 = *(uint *)(*param_5 + 0x14);
      bVar15 = uVar12 < 4;
      bVar18 = uVar12 == 4;
      if (4 < uVar12) {
        lVar9 = 7;
        pbVar10 = param_4;
        pbVar11 = (byte *)".ctors";
        do {
          if (lVar9 == 0) break;
          lVar9 = lVar9 + -1;
          bVar15 = *pbVar10 < *pbVar11;
          bVar18 = *pbVar10 == *pbVar11;
          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
        } while (bVar18);
        bVar16 = false;
        bVar15 = (!bVar15 && !bVar18) == bVar15;
        if (bVar15) {
LAB_001ba680:
          bVar18 = false;
          lVar9 = 0xc;
          pbVar10 = *(byte **)(lVar7 + 0x28);
          pbVar11 = (byte *)".init_array";
          do {
            if (lVar9 == 0) break;
            lVar9 = lVar9 + -1;
            bVar18 = *pbVar10 < *pbVar11;
            bVar15 = *pbVar10 == *pbVar11;
            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
          } while (bVar15);
          bVar15 = (!bVar18 && !bVar15) == bVar18;
          if (!bVar15) goto LAB_001ba6e0;
        }
        else {
          lVar9 = 7;
          pbVar10 = (byte *)".ctors.";
          pbVar11 = param_4;
          do {
            if (lVar9 == 0) break;
            lVar9 = lVar9 + -1;
            bVar16 = *pbVar10 < *pbVar11;
            bVar15 = *pbVar10 == *pbVar11;
            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
          } while (bVar15);
          bVar15 = (!bVar16 && !bVar15) == bVar16;
          if (bVar15) goto LAB_001ba680;
LAB_001ba6e0:
          bVar18 = false;
          lVar9 = 7;
          pbVar10 = param_4;
          pbVar11 = (byte *)".dtors";
          do {
            if (lVar9 == 0) break;
            lVar9 = lVar9 + -1;
            bVar18 = *pbVar10 < *pbVar11;
            bVar15 = *pbVar10 == *pbVar11;
            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
          } while (bVar15);
          bVar16 = false;
          bVar15 = (!bVar18 && !bVar15) == bVar18;
          if (!bVar15) {
            lVar9 = 7;
            pbVar10 = (byte *)".dtors.";
            pbVar11 = param_4;
            do {
              if (lVar9 == 0) break;
              lVar9 = lVar9 + -1;
              bVar16 = *pbVar10 < *pbVar11;
              bVar15 = *pbVar10 == *pbVar11;
              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
            } while (bVar15);
            bVar15 = (!bVar16 && !bVar15) == bVar16;
            if (!bVar15) goto LAB_001ba528;
          }
          bVar18 = false;
          lVar9 = 0xc;
          pbVar10 = *(byte **)(lVar7 + 0x28);
          pbVar11 = (byte *)".fini_array";
          do {
            if (lVar9 == 0) break;
            lVar9 = lVar9 + -1;
            bVar18 = *pbVar10 < *pbVar11;
            bVar15 = *pbVar10 == *pbVar11;
            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
          } while (bVar15);
          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;
        }
        local_60 = &DAT_0043e980;
        local_58 = param_2;
        local_50 = param_3;
        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);
        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);
        goto LAB_001ba52a;
      }
    }
  }
LAB_001ba528:
  cVar3 = '\0';
LAB_001ba52a:
  uVar2 = *(ulong *)(lVar7 + 0x70);
  uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);
  *param_9 = uVar6;
  if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {
    uVar4 = FUN_001a5050(param_1,lVar7,0);
    *(undefined4 *)(lVar7 + 0x78) = uVar4;
  }
  *(undefined1 *)(param_1 + 0x368) = 1;
  return lVar7;
}


PUSH R15
MOV R15D,R9D
PUSH R14
PUSH R13
MOV R13,RSI
PUSH R12
MOV R12,RCX
MOV RCX,R8
PUSH RBP
MOV RBP,R8
PUSH RBX
MOV RBX,RDI
SUB RSP,0x58
MOV RAX,qword ptr [RSP + 0xa0]
MOV dword ptr [RSP + 0x4],EDX
MOV RDX,R12
MOV qword ptr [RAX],0x0
CALL 0x001b3220
TEST AL,AL
JZ 0x001ba5c3
MOV RAX,qword ptr [0x0043e6b0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x001ba729
CMP byte ptr [RAX + 0x5051],0x0
JZ 0x001ba215
MOV RDX,qword ptr [RBP]
MOV R14D,dword ptr [RDX + 0x8]
TEST R14D,0x200
JNZ 0x001ba5e0
CMP byte ptr [RAX + 0x8f19],0x0
LEA R14,[RSP + 0x30]
JZ 0x001ba310
MOV RAX,qword ptr [R13]
MOV EDX,dword ptr [RSP + 0x4]
MOV RSI,R13
MOV RDI,R14
CALL qword ptr [RAX + 0x80]
MOV RDX,qword ptr [RSP + 0x30]
MOV ECX,0xe
LEA RSI,[0x3761c3]
MOV RDI,RDX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
LEA RAX,[R14 + 0x10]
JNZ 0x001ba300
CMP RDX,RAX
JZ 0x001ba26f
MOV RDI,RDX
CALL 0x002dac60
MOV RAX,qword ptr [RBP]
MOV EDX,dword ptr [RAX + 0x8]
MOV RAX,qword ptr [0x0043e6b0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x001ba803
MOV R8D,EDX
AND R8D,0xfffff50f
CMP byte ptr [RAX + 0x5051],0x0
JZ 0x001ba2a6
AND EDX,0xfffff58f
MOV R8D,EDX
MOV RCX,R14
LEA RDI,[RBX + 0x10]
MOV EDX,0x1
MOV dword ptr [RSP + 0x8],R8D
LEA RSI,[0x3761c3]
CALL 0x0026e690
SUB RSP,0x8
MOV RDI,RBX
XOR R9D,R9D
PUSH 0x0
MOV R8D,dword ptr [RSP + 0x18]
MOV ECX,R15D
MOV RSI,RAX
MOV RDX,qword ptr [RSP + 0x40]
CALL 0x001acd20
OR byte ptr [RAX + 0xca],0x80
MOV R14,RAX
POP RDI
POP R8
JMP 0x001ba3f8
CMP RDX,RAX
JZ 0x001ba310
MOV RDI,RDX
CALL 0x002dac60
NOP dword ptr [RAX]
MOV EAX,dword ptr [RSP + 0x4]
LEA RDI,[RBX + 0x3e0]
MOV RSI,R14
MOV qword ptr [RSP + 0x30],R13
MOV dword ptr [RSP + 0x38],EAX
CALL 0x001b4c30
MOV R11,RAX
LEA RAX,[RBX + 0x3e8]
CMP R11,RAX
MOV RAX,qword ptr [RBP]
JZ 0x001ba590
MOV EDX,dword ptr [RAX + 0x8]
MOV RAX,qword ptr [0x0043e6b0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x001ba803
MOV R8D,EDX
AND R8D,0xfffff50f
CMP byte ptr [RAX + 0x5051],0x0
JZ 0x001ba376
AND EDX,0xfffff58f
MOV R8D,EDX
MOV RAX,qword ptr [R11 + 0x30]
MOV RCX,R14
LEA RDI,[RBX + 0x10]
MOV EDX,0x1
MOV dword ptr [RSP + 0x8],R8D
MOV RSI,qword ptr [RAX]
MOV qword ptr [RSP + 0x10],R11
CALL 0x0026e690
SUB RSP,0x8
MOV ECX,R15D
XOR R9D,R9D
PUSH 0x0
MOV R8D,dword ptr [RSP + 0x18]
MOV RSI,RAX
MOV RDI,RBX
MOV RDX,qword ptr [RSP + 0x40]
CALL 0x001acd20
POP RCX
POP RSI
MOV R14,RAX
MOVZX EAX,byte ptr [RAX + 0xca]
TEST AL,AL
JS 0x001ba3f8
OR EAX,0xffffff80
MOV byte ptr [R14 + 0xca],AL
MOV R11,qword ptr [RSP + 0x10]
MOV RAX,qword ptr [R11 + 0x30]
MOV RDX,qword ptr [RAX + 0x8]
MOV qword ptr [R14 + 0xd8],RDX
MOV RAX,qword ptr [RAX + 0x10]
MOV qword ptr [R14 + 0xe0],RAX
NOP word ptr [RAX + RAX*0x1]
MOV R9,qword ptr [RBX + 0x8]
MOV RDX,qword ptr [0x0043e6b0]
MOVZX EAX,byte ptr [R9 + 0x148]
MOV R15,qword ptr [RDX + 0x10]
TEST AL,AL
JNZ 0x001ba720
TEST R15,R15
JZ 0x001ba729
CMP byte ptr [R15 + 0x5051],0x0
JNZ 0x001ba620
MOV ECX,0x7
LEA RSI,[0x37624f]
MOV RDI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001ba4e0
MOV ECX,0x7
LEA RSI,[0x376257]
MOV RDI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001ba4e0
MOV ECX,0xc
LEA RSI,[0x37706c]
MOV RDI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001ba4e0
MOV ECX,0xc
LEA RSI,[0x377079]
MOV RDI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001ba4e0
CMP byte ptr [R15 + 0x1179],0x0
JZ 0x001ba620
MOV ECX,0x7
LEA RDI,[0x376229]
MOV RSI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001ba4e0
MOV ECX,0x7
LEA RDI,[0x376248]
MOV RSI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001ba620
OR byte ptr [R14 + 0xc9],0x8
MOVZX EAX,byte ptr [R9 + 0x148]
CMP byte ptr [R15 + 0x62b9],0x0
MOV EDX,EAX
JZ 0x001ba75b
TEST AL,AL
JNZ 0x001ba52a
CMP byte ptr [RBX + 0x371],0x0
MOVZX EAX,byte ptr [R15 + 0x5051]
JNZ 0x001ba636
TEST AL,AL
JZ 0x001ba770
NOP dword ptr [RAX]
XOR EAX,EAX
MOV R15,qword ptr [R14 + 0x70]
PUSH RAX
MOV RDX,R13
MOV R9,RBP
MOV EAX,dword ptr [RSP + 0x98]
MOV R8,R12
MOV RSI,RBX
MOV RDI,R14
PUSH RAX
MOV ECX,dword ptr [RSP + 0x14]
CALL 0x00226940
MOV RCX,qword ptr [RSP + 0xb0]
MOV qword ptr [RCX],RAX
POP RAX
POP RDX
TEST R15B,0x2
JZ 0x001ba583
MOV RAX,qword ptr [R14 + 0x70]
AND R15D,0x5
AND EAX,0x5
CMP R15,RAX
JZ 0x001ba583
XOR EDX,EDX
MOV RSI,R14
MOV RDI,RBX
CALL 0x001a5050
MOV dword ptr [R14 + 0x78],EAX
MOV byte ptr [RBX + 0x368],0x1
JMP 0x001ba5c6
MOV R8D,dword ptr [RAX + 0x8]
PUSH 0x1
MOV R9D,0x1
MOV ECX,R15D
PUSH 0x0
MOV RDX,R12
MOV RSI,R13
MOV RDI,RBX
PUSH 0x0
PUSH 0x0
CALL 0x001acf30
ADD RSP,0x20
MOV R14,RAX
TEST RAX,RAX
JNZ 0x001ba3f8
XOR R14D,R14D
ADD RSP,0x58
MOV RAX,R14
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RSI,R12
LEA RDI,[RBX + 0x10]
XOR ECX,ECX
MOV EDX,0x1
CALL 0x0026e690
MOV ECX,R14D
XOR R9D,R9D
XOR R8D,R8D
AND ECX,0xfffff7ff
MOV EDX,R15D
MOV RSI,RAX
MOV RDI,RBX
MOV R12,RAX
CALL 0x001a8f30
MOV R14,RAX
JMP 0x001ba3f8
CMP byte ptr [R15 + 0x62b9],0x0
JNZ 0x001ba504
MOVZX EAX,byte ptr [R15 + 0x5051]
TEST AL,AL
JNZ 0x001ba528
MOV RAX,qword ptr [RBP]
CMP dword ptr [RAX + 0x14],0x4
JBE 0x001ba528
MOV ECX,0x7
LEA RDI,[0x376229]
MOV RSI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001ba680
MOV ECX,0x7
LEA RSI,[0x37624f]
MOV RDI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001ba6e0
MOV RSI,qword ptr [R14 + 0x28]
MOV ECX,0xc
LEA RDI,[0x376230]
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001ba6e0
MOV EAX,dword ptr [RSP + 0x4]
LEA RDX,[RSP + 0x28]
LEA RSI,[RSP + 0x30]
MOV ECX,0x1
LEA RDI,[0x43e980]
MOV qword ptr [RSP + 0x30],R13
MOV dword ptr [RSP + 0x38],EAX
MOV qword ptr [RSP + 0x28],RDI
CALL 0x001ba100
MOV RAX,qword ptr [RBX + 0x8]
MOVZX EAX,byte ptr [RAX + 0x148]
JMP 0x001ba52a
MOV ECX,0x7
LEA RDI,[0x376248]
MOV RSI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001ba7e0
MOV RSI,qword ptr [R14 + 0x28]
MOV ECX,0xc
LEA RDI,[0x37623c]
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001ba69b
JMP 0x001ba528
TEST R15,R15
JNZ 0x001ba52a
LEA RDX,[0x3778a8]
MOV ESI,0x5c
LEA RDI,[0x3726d0]
CALL 0x0017c650
OR byte ptr [R14 + 0xc9],0x8
MOVZX EDX,byte ptr [R9 + 0x148]
MOVZX EAX,DL
TEST DL,DL
JZ 0x001ba62e
JMP 0x001ba52a
LEA RAX,[0x427ee0]
MOV EDX,0xe
LEA RCX,[0x3761c3]
MOV qword ptr [RSP + 0x8],RAX
MOV RSI,R12
MOV RDI,RCX
MOV qword ptr [RSP + 0x10],R9
CALL 0x001472f0
MOV R9,qword ptr [RSP + 0x10]
TEST EAX,EAX
JZ 0x001ba748
ADD qword ptr [RSP + 0x8],0x8
MOV RAX,qword ptr [RSP + 0x8]
LEA RSI,[0x427f00]
MOV qword ptr [RSP + 0x10],R9
CMP RSI,RAX
JZ 0x001ba63e
MOV RCX,qword ptr [RAX]
MOV RDI,RCX
MOV qword ptr [RSP + 0x18],RCX
CALL 0x00147490
MOV RCX,qword ptr [RSP + 0x18]
MOV R9,qword ptr [RSP + 0x10]
MOV RDX,RAX
JMP 0x001ba788
MOV ECX,0x7
LEA RSI,[0x376257]
MOV RDI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001ba6fe
JMP 0x001ba528
CALL 0x001a4340
(translation_unit "long FUN_001ba1a0(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,\n                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)\n\n{\n  long lVar1;\n  ulong uVar2;\n  char cVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char *__s1;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  *param_9 = 0;\n  cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);\n  if (cVar3 == '\0') {\n    return 0;\n  }\n  lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar7 == 0) goto LAB_001ba729;\n  if ((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }\n  else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }\nLAB_001ba3f8:\n  lVar9 = *(long *)(param_1 + 8);\n  cVar3 = *(char *)(lVar9 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar3 != '\0') {\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (lVar1 == 0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar15 = false;\n  bVar18 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar18) goto LAB_001ba620;\n  lVar8 = 7;\n  pbVar10 = (byte *)".ctors.";\n  pbVar11 = param_4;\n  do {\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }\nLAB_001ba528:\n  cVar3 = '\0';\nLAB_001ba52a:\n  uVar2 = *(ulong *)(lVar7 + 0x70);\n  uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);\n  *param_9 = uVar6;\n  if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar7;\n}\n\n" (function_definition "long FUN_001ba1a0(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,\n                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)\n\n{\n  long lVar1;\n  ulong uVar2;\n  char cVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char *__s1;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  *param_9 = 0;\n  cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);\n  if (cVar3 == '\0') {\n    return 0;\n  }\n  lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar7 == 0) goto LAB_001ba729;\n  if ((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }\n  else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }\nLAB_001ba3f8:\n  lVar9 = *(long *)(param_1 + 8);\n  cVar3 = *(char *)(lVar9 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar3 != '\0') {\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (lVar1 == 0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar15 = false;\n  bVar18 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar18) goto LAB_001ba620;\n  lVar8 = 7;\n  pbVar10 = (byte *)".ctors.";\n  pbVar11 = param_4;\n  do {\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }\nLAB_001ba528:\n  cVar3 = '\0';\nLAB_001ba52a:\n  uVar2 = *(ulong *)(lVar7 + 0x70);\n  uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);\n  *param_9 = uVar6;\n  if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar7;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_001ba1a0(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,\n                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)" identifier (parameter_list "(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,\n                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "long *param_5" (sized_type_specifier "long" long) (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined8 param_8" type_identifier identifier) , (parameter_declaration "undefined8 *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  char cVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char *__s1;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  *param_9 = 0;\n  cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);\n  if (cVar3 == '\0') {\n    return 0;\n  }\n  lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar7 == 0) goto LAB_001ba729;\n  if ((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }\n  else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }\nLAB_001ba3f8:\n  lVar9 = *(long *)(param_1 + 8);\n  cVar3 = *(char *)(lVar9 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar3 != '\0') {\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (lVar1 == 0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar15 = false;\n  bVar18 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar18) goto LAB_001ba620;\n  lVar8 = 7;\n  pbVar10 = (byte *)".ctors.";\n  pbVar11 = param_4;\n  do {\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }\nLAB_001ba528:\n  cVar3 = '\0';\nLAB_001ba52a:\n  uVar2 = *(ulong *)(lVar7 + 0x70);\n  uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);\n  *param_9 = uVar6;\n  if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar7;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined1 uVar14;" type_identifier identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "undefined1 uVar17;" type_identifier identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "undefined **local_80;" type_identifier (pointer_declarator "**local_80" * (pointer_declarator "*local_80" * identifier)) ;) (declaration "undefined *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "byte *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "byte local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);" (assignment_expression "cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5)" identifier = (call_expression "FUN_001b3220(param_1,param_2,param_4,param_5)" identifier (argument_list "(param_1,param_2,param_4,param_5)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (cVar3 == '\0') {\n    return 0;\n  }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);" (assignment_expression "lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10)" identifier = (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) ))))) ;) (if_statement "if (lVar7 == 0) goto LAB_001ba729;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001ba729;" goto statement_identifier ;)) (if_statement "if ((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }\n  else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }" if (parenthesized_expression "((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0))" ( (binary_expression "(*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)" (parenthesized_expression "(*(char *)(lVar7 + 0x5051) == '\0')" ( (binary_expression "*(char *)(lVar7 + 0x5051) == '\0'" (pointer_expression "*(char *)(lVar7 + 0x5051)" * (cast_expression "(char *)(lVar7 + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x5051)" ( (binary_expression "lVar7 + 0x5051" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)" ( (comma_expression "uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0" (assignment_expression "uVar12 = *(uint *)(*param_5 + 8)" identifier = (pointer_expression "*(uint *)(*param_5 + 8)" * (cast_expression "(uint *)(*param_5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) , (binary_expression "(uVar12 & 0x200) == 0" (parenthesized_expression "(uVar12 & 0x200)" ( (binary_expression "uVar12 & 0x200" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';" (assignment_expression "uVar17 = *(char *)(lVar7 + 0x8f19) == '\0'" identifier = (binary_expression "*(char *)(lVar7 + 0x8f19) == '\0'" (pointer_expression "*(char *)(lVar7 + 0x8f19)" * (cast_expression "(char *)(lVar7 + 0x8f19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x8f19)" ( (binary_expression "lVar7 + 0x8f19" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }" if (parenthesized_expression "(!(bool)uVar17)" ( (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }" { (expression_statement "(**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);" (call_expression "(**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3)" (parenthesized_expression "(**(code **)(*(long *)param_2 + 0x80))" ( (pointer_expression "**(code **)(*(long *)param_2 + 0x80)" * (pointer_expression "*(code **)(*(long *)param_2 + 0x80)" * (cast_expression "(code **)(*(long *)param_2 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_2 + 0x80)" ( (binary_expression "*(long *)param_2 + 0x80" (pointer_expression "*(long *)param_2" * (cast_expression "(long *)param_2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(&local_58,param_2,param_3)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "lVar7 = 0xe;" (assignment_expression "lVar7 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".text.unlikely";" (assignment_expression "pbVar10 = (byte *)".text.unlikely"" identifier = (cast_expression "(byte *)".text.unlikely"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".text.unlikely"" " string_content "))) ;) (expression_statement "pbVar11 = local_58;" (assignment_expression "pbVar11 = local_58" identifier = identifier) ;) (do_statement "do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);" do (compound_statement "{\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar10 < *pbVar11;" (assignment_expression "uVar14 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar17 = *pbVar10 == *pbVar11;" (assignment_expression "uVar17 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }" if (parenthesized_expression "((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14)" ( (binary_expression "(!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14" (parenthesized_expression "(!(bool)uVar14 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar14 && !(bool)uVar17" (unary_expression "!(bool)uVar14" ! (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }" { (if_statement "if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n          FUN_002dac60(local_58);\n        }" { (expression_statement "FUN_002dac60(local_58);" (call_expression "FUN_002dac60(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;" 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_001ba803;" goto statement_identifier ;)) (expression_statement "uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;" (assignment_expression "uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f" identifier = (binary_expression "*(uint *)(*param_5 + 8) & 0xfffff50f" (pointer_expression "*(uint *)(*param_5 + 8)" * (cast_expression "(uint *)(*param_5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051" (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          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }" { (expression_statement "uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;" (assignment_expression "uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f" identifier = (binary_expression "*(uint *)(*param_5 + 8) & 0xfffff58f" (pointer_expression "*(uint *)(*param_5 + 8)" * (cast_expression "(uint *)(*param_5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) )))) & number_literal)) ;) })) (expression_statement "uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);" (assignment_expression "uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58)" identifier = (call_expression "FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58)" identifier (argument_list "(param_1 + 0x10,".text.unlikely",1,&local_58)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) , (string_literal "".text.unlikely"" " string_content ") , number_literal , (pointer_expression "&local_58" & identifier) )))) ;) (expression_statement "lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);" (assignment_expression "lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0)" identifier = (call_expression "FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0)" identifier (argument_list "(param_1,uVar6,local_58,param_6,uVar12,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "*(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;" (assignment_expression "*(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar7 + 0xca)" * (cast_expression "(byte *)(lVar7 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xca)" ( (binary_expression "lVar7 + 0xca" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar7 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar7 + 0xca)" * (cast_expression "(byte *)(lVar7 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xca)" ( (binary_expression "lVar7 + 0xca" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_001ba3f8;" goto statement_identifier ;) })) (if_statement "if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n        FUN_002dac60(local_58);\n      }" { (expression_statement "FUN_002dac60(local_58);" (call_expression "FUN_002dac60(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) })) (expression_statement "local_58 = param_2;" (assignment_expression "local_58 = param_2" identifier = identifier) ;) (expression_statement "local_50 = param_3;" (assignment_expression "local_50 = param_3" identifier = identifier) ;) (expression_statement "lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);" (assignment_expression "lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58)" identifier = (call_expression "FUN_001b4c30(param_1 + 0x3e0,&local_58)" identifier (argument_list "(param_1 + 0x3e0,&local_58)" ( (binary_expression "param_1 + 0x3e0" identifier + number_literal) , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }" if (parenthesized_expression "(lVar9 == param_1 + 1000)" ( (binary_expression "lVar9 == param_1 + 1000" identifier == (binary_expression "param_1 + 1000" identifier + number_literal)) )) (compound_statement "{\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);" (assignment_expression "lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1)" identifier = (call_expression "FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1)" identifier (argument_list "(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1)" ( identifier , identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(*param_5 + 8)" * (cast_expression "(undefined4 *)(*param_5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) )))) , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (if_statement "if (lVar7 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }" else (compound_statement "{\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }" { (expression_statement "uVar12 = *(uint *)(*param_5 + 8);" (assignment_expression "uVar12 = *(uint *)(*param_5 + 8)" identifier = (pointer_expression "*(uint *)(*param_5 + 8)" * (cast_expression "(uint *)(*param_5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\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_001ba803:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }" { (labeled_statement "LAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();" statement_identifier : comment (expression_statement "FUN_001a4340();" (call_expression "FUN_001a4340()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "uVar13 = uVar12 & 0xfffff50f;" (assignment_expression "uVar13 = uVar12 & 0xfffff50f" identifier = (binary_expression "uVar12 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051" (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        uVar13 = uVar12 & 0xfffff58f;\n      }" { (expression_statement "uVar13 = uVar12 & 0xfffff58f;" (assignment_expression "uVar13 = uVar12 & 0xfffff58f" identifier = (binary_expression "uVar12 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);" (assignment_expression "uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58)" identifier = (call_expression "FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58)" identifier (argument_list "(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) , (pointer_expression "**(undefined8 **)(lVar9 + 0x30)" * (pointer_expression "*(undefined8 **)(lVar9 + 0x30)" * (cast_expression "(undefined8 **)(lVar9 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) ))))) , number_literal , (pointer_expression "&local_58" & identifier) )))) ;) (expression_statement "lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);" (assignment_expression "lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0)" identifier = (call_expression "FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0)" identifier (argument_list "(param_1,uVar6,local_58,param_6,uVar13,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }" if (parenthesized_expression "(-1 < (char)*(byte *)(lVar7 + 0xca))" ( (binary_expression "-1 < (char)*(byte *)(lVar7 + 0xca)" number_literal < (cast_expression "(char)*(byte *)(lVar7 + 0xca)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(lVar7 + 0xca)" * (cast_expression "(byte *)(lVar7 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xca)" ( (binary_expression "lVar7 + 0xca" identifier + number_literal) )))))) )) (compound_statement "{\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }" { (expression_statement "*(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;" (assignment_expression "*(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar7 + 0xca)" * (cast_expression "(byte *)(lVar7 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xca)" ( (binary_expression "lVar7 + 0xca" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar7 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar7 + 0xca)" * (cast_expression "(byte *)(lVar7 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xca)" ( (binary_expression "lVar7 + 0xca" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "lVar9 = *(long *)(lVar9 + 0x30);" (assignment_expression "lVar9 = *(long *)(lVar9 + 0x30)" identifier = (pointer_expression "*(long *)(lVar9 + 0x30)" * (cast_expression "(long *)(lVar9 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);" (assignment_expression "*(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8)" (pointer_expression "*(undefined8 *)(lVar7 + 0xd8)" * (cast_expression "(undefined8 *)(lVar7 + 0xd8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xd8)" ( (binary_expression "lVar7 + 0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar9 + 8)" * (cast_expression "(undefined8 *)(lVar9 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 8)" ( (binary_expression "lVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);" (assignment_expression "*(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10)" (pointer_expression "*(undefined8 *)(lVar7 + 0xe0)" * (cast_expression "(undefined8 *)(lVar7 + 0xe0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xe0)" ( (binary_expression "lVar7 + 0xe0" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar9 + 0x10)" * (cast_expression "(undefined8 *)(lVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) ;) })) }))) }) (else_clause "else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }" else (compound_statement "{\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }" { (expression_statement "param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);" (assignment_expression "param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0)" identifier = (cast_expression "(byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0026e690(param_1 + 0x10,param_4,1,0)" identifier (argument_list "(param_1 + 0x10,param_4,1,0)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) , identifier , number_literal , number_literal ))))) ;) (expression_statement "lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);" (assignment_expression "lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0)" identifier = (call_expression "FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0)" identifier (argument_list "(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0)" ( identifier , identifier , identifier , (binary_expression "uVar12 & 0xfffff7ff" identifier & number_literal) , number_literal , number_literal )))) ;) }))) (labeled_statement "LAB_001ba3f8:\n  lVar9 = *(long *)(param_1 + 8);" statement_identifier : (expression_statement "lVar9 = *(long *)(param_1 + 8);" (assignment_expression "lVar9 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;)) (expression_statement "cVar3 = *(char *)(lVar9 + 0x148);" (assignment_expression "cVar3 = *(char *)(lVar9 + 0x148)" identifier = (pointer_expression "*(char *)(lVar9 + 0x148)" * (cast_expression "(char *)(lVar9 + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x148)" ( (binary_expression "lVar9 + 0x148" identifier + number_literal) ))))) ;) (expression_statement "lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);" (assignment_expression "lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10)" identifier = (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) ))))) ;) (if_statement "if (cVar3 != '\0') {\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }" { (if_statement "if (lVar1 == 0) goto LAB_001ba729;" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001ba729;" goto statement_identifier ;)) (goto_statement "goto LAB_001ba52a;" goto statement_identifier ;) })) (if_statement "if (lVar1 == 0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_001ba729:\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 ") ))) ;)) })) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar18 = *(char *)(lVar1 + 0x5051) == '\0';" (assignment_expression "bVar18 = *(char *)(lVar1 + 0x5051) == '\0'" identifier = (binary_expression "*(char *)(lVar1 + 0x5051) == '\0'" (pointer_expression "*(char *)(lVar1 + 0x5051)" * (cast_expression "(char *)(lVar1 + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x5051)" ( (binary_expression "lVar1 + 0x5051" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar18) goto LAB_001ba620;" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (goto_statement "goto LAB_001ba620;" goto statement_identifier ;)) (expression_statement "lVar8 = 7;" (assignment_expression "lVar8 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".ctors.";" (assignment_expression "pbVar10 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" identifier = identifier) ;) (do_statement "do {\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  } while (bVar18);" do (compound_statement "{\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar10 < *pbVar11;" (assignment_expression "bVar15 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar18 = *pbVar10 == *pbVar11;" (assignment_expression "bVar18 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }" { (labeled_statement "LAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;" statement_identifier : (expression_statement "*(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;" (assignment_expression "*(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar7 + 0xc9)" * (cast_expression "(byte *)(lVar7 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xc9)" ( (binary_expression "lVar7 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar7 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar7 + 0xc9)" * (cast_expression "(byte *)(lVar7 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xc9)" ( (binary_expression "lVar7 + 0xc9" identifier + number_literal) )))) | number_literal)) ;)) (expression_statement "cVar3 = *(char *)(lVar9 + 0x148);" (assignment_expression "cVar3 = *(char *)(lVar9 + 0x148)" identifier = (pointer_expression "*(char *)(lVar9 + 0x148)" * (cast_expression "(char *)(lVar9 + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x148)" ( (binary_expression "lVar9 + 0x148" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }" if (parenthesized_expression "(*(char *)(lVar1 + 0x62b9) == '\0')" ( (binary_expression "*(char *)(lVar1 + 0x62b9) == '\0'" (pointer_expression "*(char *)(lVar1 + 0x62b9)" * (cast_expression "(char *)(lVar1 + 0x62b9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x62b9)" ( (binary_expression "lVar1 + 0x62b9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }" { (labeled_statement "LAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;" statement_identifier : (if_statement "if (cVar3 != '\0') goto LAB_001ba52a;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ba52a;" goto statement_identifier ;))) (goto_statement "goto LAB_001ba62e;" goto statement_identifier ;) })) (if_statement "if (cVar3 != '\0') goto LAB_001ba52a;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ba52a;" goto statement_identifier ;)) (labeled_statement "LAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);" statement_identifier : (expression_statement "cVar3 = *(char *)(lVar1 + 0x5051);" (assignment_expression "cVar3 = *(char *)(lVar1 + 0x5051)" identifier = (pointer_expression "*(char *)(lVar1 + 0x5051)" * (cast_expression "(char *)(lVar1 + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x5051)" ( (binary_expression "lVar1 + 0x5051" identifier + number_literal) ))))) ;)) (if_statement "if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;" if (parenthesized_expression "(*(char *)(param_1 + 0x371) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x371) != '\0'" (pointer_expression "*(char *)(param_1 + 0x371)" * (cast_expression "(char *)(param_1 + 0x371)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x371)" ( (binary_expression "param_1 + 0x371" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ba636;" goto statement_identifier ;)) (if_statement "if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }" { (expression_statement "__n = 0xe;" (assignment_expression "__n = 0xe" identifier = number_literal) ;) (expression_statement "__s1 = ".text.unlikely";" (assignment_expression "__s1 = ".text.unlikely"" identifier = (string_literal "".text.unlikely"" " string_content ")) ;) (expression_statement "local_80 = &PTR_s__text_unlikely_00427ee0;" (assignment_expression "local_80 = &PTR_s__text_unlikely_00427ee0" identifier = (pointer_expression "&PTR_s__text_unlikely_00427ee0" & identifier)) ;) (while_statement "while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }" while (parenthesized_expression "(iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0)" ( (comma_expression "iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0" (assignment_expression "iVar5 = strncmp(__s1,(char *)param_4,__n)" identifier = (call_expression "strncmp(__s1,(char *)param_4,__n)" identifier (argument_list "(__s1,(char *)param_4,__n)" ( identifier , (cast_expression "(char *)param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) )) (compound_statement "{\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }" { (expression_statement "local_80 = local_80 + 1;" (assignment_expression "local_80 = local_80 + 1" identifier = (binary_expression "local_80 + 1" identifier + number_literal)) ;) (if_statement "if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;" if (parenthesized_expression "(local_80 == &PTR_s_aranges_00427f00)" ( (binary_expression "local_80 == &PTR_s_aranges_00427f00" identifier == (pointer_expression "&PTR_s_aranges_00427f00" & identifier)) )) (goto_statement "goto LAB_001ba63e;" goto statement_identifier ;)) (expression_statement "__s1 = *local_80;" (assignment_expression "__s1 = *local_80" identifier = (pointer_expression "*local_80" * identifier)) ;) (expression_statement "__n = strlen(__s1);" (assignment_expression "__n = strlen(__s1)" identifier = (call_expression "strlen(__s1)" identifier (argument_list "(__s1)" ( identifier )))) ;) })) (expression_statement "*(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;" (assignment_expression "*(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar7 + 0xc9)" * (cast_expression "(byte *)(lVar7 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xc9)" ( (binary_expression "lVar7 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar7 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar7 + 0xc9)" * (cast_expression "(byte *)(lVar7 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xc9)" ( (binary_expression "lVar7 + 0xc9" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "cVar3 = *(char *)(lVar9 + 0x148);" (assignment_expression "cVar3 = *(char *)(lVar9 + 0x148)" identifier = (pointer_expression "*(char *)(lVar9 + 0x148)" * (cast_expression "(char *)(lVar9 + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x148)" ( (binary_expression "lVar9 + 0x148" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001ba75b;" goto statement_identifier ;) })) }) (else_clause "else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }" else (compound_statement "{\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }" { (expression_statement "lVar8 = 7;" (assignment_expression "lVar8 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".dtors.";" (assignment_expression "pbVar10 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) goto LAB_001ba4e0;" if (parenthesized_expression "(bVar15)" ( identifier )) (goto_statement "goto LAB_001ba4e0;" goto statement_identifier ;)) (expression_statement "lVar8 = 0xc;" (assignment_expression "lVar8 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".init_array.";" (assignment_expression "pbVar10 = (byte *)".init_array."" identifier = (cast_expression "(byte *)".init_array."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".init_array."" " string_content "))) ;) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar10 < *pbVar11;" (assignment_expression "bVar18 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) goto LAB_001ba4e0;" if (parenthesized_expression "(bVar15)" ( identifier )) (goto_statement "goto LAB_001ba4e0;" goto statement_identifier ;)) (expression_statement "lVar8 = 0xc;" (assignment_expression "lVar8 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".fini_array.";" (assignment_expression "pbVar10 = (byte *)".fini_array."" identifier = (cast_expression "(byte *)".fini_array."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".fini_array."" " string_content "))) ;) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;" if (parenthesized_expression "((!bVar16 && !bVar15) == bVar16)" ( (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_001ba4e0;" goto statement_identifier ;)) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar18 = *(char *)(lVar1 + 0x1179) == '\0';" (assignment_expression "bVar18 = *(char *)(lVar1 + 0x1179) == '\0'" identifier = (binary_expression "*(char *)(lVar1 + 0x1179) == '\0'" (pointer_expression "*(char *)(lVar1 + 0x1179)" * (cast_expression "(char *)(lVar1 + 0x1179)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x1179)" ( (binary_expression "lVar1 + 0x1179" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }" { (expression_statement "lVar8 = 7;" (assignment_expression "lVar8 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = param_4;" (assignment_expression "pbVar10 = param_4" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".ctors";" (assignment_expression "pbVar11 = (byte *)".ctors"" identifier = (cast_expression "(byte *)".ctors"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors"" " string_content "))) ;) (do_statement "do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar10 < *pbVar11;" (assignment_expression "bVar15 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar18 = *pbVar10 == *pbVar11;" (assignment_expression "bVar18 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }" { (expression_statement "lVar8 = 7;" (assignment_expression "lVar8 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = param_4;" (assignment_expression "pbVar10 = param_4" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".dtors";" (assignment_expression "pbVar11 = (byte *)".dtors"" identifier = (cast_expression "(byte *)".dtors"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors"" " string_content "))) ;) (do_statement "do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);" do (compound_statement "{\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;" if (parenthesized_expression "((!bVar16 && !bVar15) != bVar16)" ( (binary_expression "(!bVar16 && !bVar15) != bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001ba620;" goto statement_identifier ;)) })) (goto_statement "goto LAB_001ba4e0;" goto statement_identifier ;) })) (labeled_statement "LAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;" statement_identifier : (if_statement "if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;" if (parenthesized_expression "(*(char *)(lVar1 + 0x62b9) != '\0')" ( (binary_expression "*(char *)(lVar1 + 0x62b9) != '\0'" (pointer_expression "*(char *)(lVar1 + 0x62b9)" * (cast_expression "(char *)(lVar1 + 0x62b9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x62b9)" ( (binary_expression "lVar1 + 0x62b9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ba504;" goto statement_identifier ;))) (labeled_statement "LAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);" statement_identifier : (expression_statement "cVar3 = *(char *)(lVar1 + 0x5051);" (assignment_expression "cVar3 = *(char *)(lVar1 + 0x5051)" identifier = (pointer_expression "*(char *)(lVar1 + 0x5051)" * (cast_expression "(char *)(lVar1 + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x5051)" ( (binary_expression "lVar1 + 0x5051" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }" statement_identifier : (if_statement "if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }" { (labeled_statement "LAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);" statement_identifier : (expression_statement "uVar12 = *(uint *)(*param_5 + 0x14);" (assignment_expression "uVar12 = *(uint *)(*param_5 + 0x14)" identifier = (pointer_expression "*(uint *)(*param_5 + 0x14)" * (cast_expression "(uint *)(*param_5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 0x14)" ( (binary_expression "*param_5 + 0x14" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;)) (expression_statement "bVar15 = uVar12 < 4;" (assignment_expression "bVar15 = uVar12 < 4" identifier = (binary_expression "uVar12 < 4" identifier < number_literal)) ;) (expression_statement "bVar18 = uVar12 == 4;" (assignment_expression "bVar18 = uVar12 == 4" identifier = (binary_expression "uVar12 == 4" identifier == number_literal)) ;) (if_statement "if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }" if (parenthesized_expression "(4 < uVar12)" ( (binary_expression "4 < uVar12" number_literal < identifier) )) (compound_statement "{\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }" { (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = param_4;" (assignment_expression "pbVar10 = param_4" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".ctors";" (assignment_expression "pbVar11 = (byte *)".ctors"" identifier = (cast_expression "(byte *)".ctors"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors"" " string_content "))) ;) (do_statement "do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);" do (compound_statement "{\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar10 < *pbVar11;" (assignment_expression "bVar15 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar18 = *pbVar10 == *pbVar11;" (assignment_expression "bVar18 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }" { (labeled_statement "LAB_001ba680:\n          bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar9 = 0xc;" (assignment_expression "lVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar10 = *(byte **)(lVar7 + 0x28);" (assignment_expression "pbVar10 = *(byte **)(lVar7 + 0x28)" identifier = (pointer_expression "*(byte **)(lVar7 + 0x28)" * (cast_expression "(byte **)(lVar7 + 0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 0x28)" ( (binary_expression "lVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = (byte *)".init_array";" (assignment_expression "pbVar11 = (byte *)".init_array"" identifier = (cast_expression "(byte *)".init_array"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".init_array"" " string_content "))) ;) (do_statement "do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);" do (compound_statement "{\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar10 < *pbVar11;" (assignment_expression "bVar18 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) goto LAB_001ba6e0;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_001ba6e0;" goto statement_identifier ;)) }) (else_clause "else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }" else (compound_statement "{\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }" { (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".ctors.";" (assignment_expression "pbVar10 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" identifier = identifier) ;) (do_statement "do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);" do (compound_statement "{\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) goto LAB_001ba680;" if (parenthesized_expression "(bVar15)" ( identifier )) (goto_statement "goto LAB_001ba680;" goto statement_identifier ;)) (labeled_statement "LAB_001ba6e0:\n          bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = param_4;" (assignment_expression "pbVar10 = param_4" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".dtors";" (assignment_expression "pbVar11 = (byte *)".dtors"" identifier = (cast_expression "(byte *)".dtors"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors"" " string_content "))) ;) (do_statement "do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);" do (compound_statement "{\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar10 < *pbVar11;" (assignment_expression "bVar18 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }" { (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".dtors.";" (assignment_expression "pbVar10 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" identifier = identifier) ;) (do_statement "do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);" do (compound_statement "{\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) goto LAB_001ba528;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_001ba528;" goto statement_identifier ;)) })) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "lVar9 = 0xc;" (assignment_expression "lVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar10 = *(byte **)(lVar7 + 0x28);" (assignment_expression "pbVar10 = *(byte **)(lVar7 + 0x28)" identifier = (pointer_expression "*(byte **)(lVar7 + 0x28)" * (cast_expression "(byte **)(lVar7 + 0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 0x28)" ( (binary_expression "lVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = (byte *)".fini_array";" (assignment_expression "pbVar11 = (byte *)".fini_array"" identifier = (cast_expression "(byte *)".fini_array"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".fini_array"" " string_content "))) ;) (do_statement "do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);" do (compound_statement "{\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar10 < *pbVar11;" (assignment_expression "bVar18 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;" if (parenthesized_expression "((!bVar18 && !bVar15) != bVar18)" ( (binary_expression "(!bVar18 && !bVar15) != bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001ba528;" goto statement_identifier ;)) }))) (expression_statement "local_60 = &DAT_0043e980;" (assignment_expression "local_60 = &DAT_0043e980" identifier = (pointer_expression "&DAT_0043e980" & identifier)) ;) (expression_statement "local_58 = param_2;" (assignment_expression "local_58 = param_2" identifier = identifier) ;) (expression_statement "local_50 = param_3;" (assignment_expression "local_50 = param_3" identifier = identifier) ;) (expression_statement "FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);" (call_expression "FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1)" identifier (argument_list "(&DAT_0043e980,&local_58,&local_60,1)" ( (pointer_expression "&DAT_0043e980" & identifier) , (pointer_expression "&local_58" & identifier) , (pointer_expression "&local_60" & identifier) , number_literal ))) ;) (expression_statement "cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);" (assignment_expression "cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148)" identifier = (pointer_expression "*(char *)(*(long *)(param_1 + 8) + 0x148)" * (cast_expression "(char *)(*(long *)(param_1 + 8) + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x148)" ( (binary_expression "*(long *)(param_1 + 8) + 0x148" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_001ba52a;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_001ba528:\n  cVar3 = '\0';" statement_identifier : (expression_statement "cVar3 = '\0';" (assignment_expression "cVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (labeled_statement "LAB_001ba52a:\n  uVar2 = *(ulong *)(lVar7 + 0x70);" statement_identifier : (expression_statement "uVar2 = *(ulong *)(lVar7 + 0x70);" (assignment_expression "uVar2 = *(ulong *)(lVar7 + 0x70)" identifier = (pointer_expression "*(ulong *)(lVar7 + 0x70)" * (cast_expression "(ulong *)(lVar7 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x70)" ( (binary_expression "lVar7 + 0x70" identifier + number_literal) ))))) ;)) (expression_statement "uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);" (assignment_expression "uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3)" identifier = (call_expression "FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3)" identifier (argument_list "(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "*param_9 = uVar6;" (assignment_expression "*param_9 = uVar6" (pointer_expression "*param_9" * identifier) = identifier) ;) (if_statement "if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }" if (parenthesized_expression "(((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5)))" ( (binary_expression "((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))" (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))" ( (binary_expression "((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5)" (parenthesized_expression "((uint)uVar2 & 5)" ( (binary_expression "(uint)uVar2 & 5" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != (parenthesized_expression "((uint)*(undefined8 *)(lVar7 + 0x70) & 5)" ( (binary_expression "(uint)*(undefined8 *)(lVar7 + 0x70) & 5" (binary_expression "(uint)*(undefined8 *)(lVar7 + 0x70)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(lVar7 + 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x70)" ( (binary_expression "lVar7 + 0x70" identifier + number_literal) )))) & number_literal) ))) ))) )) (compound_statement "{\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }" { (expression_statement "uVar4 = FUN_001a5050(param_1,lVar7,0);" (assignment_expression "uVar4 = FUN_001a5050(param_1,lVar7,0)" identifier = (call_expression "FUN_001a5050(param_1,lVar7,0)" identifier (argument_list "(param_1,lVar7,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(lVar7 + 0x78) = uVar4;" (assignment_expression "*(undefined4 *)(lVar7 + 0x78) = uVar4" (pointer_expression "*(undefined4 *)(lVar7 + 0x78)" * (cast_expression "(undefined4 *)(lVar7 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x78)" ( (binary_expression "lVar7 + 0x78" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined1 *)(param_1 + 0x368) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x368) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x368)" * (cast_expression "(undefined1 *)(param_1 + 0x368)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x368)" ( (binary_expression "param_1 + 0x368" identifier + number_literal) )))) = number_literal) ;) (return_statement "return lVar7;" 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: layout<32, false>\n   DWARF original prototype: Output_section * layout<32,_false>(Layout * this,\n   Sized_relobj_file<32,_false> * object, uint shndx, char * name, Shdr<32,_false> * shdr, uint\n   sh_type, uint reloc_shndx, uint param_9, off_t * off) */\n\nOutput_section * __thiscall\ngold::Layout::layout<32,_false>\n          (Layout *this,Sized_relobj_file<32,_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)\n\n{\n  uint uVar1;\n  General_options *pGVar2;\n  _Base_ptr p_Var3;\n  Script_options *pSVar4;\n  ulong uVar5;\n  bool bVar6;\n  Output_section_order OVar7;\n  int iVar8;\n  char *pcVar9;\n  Output_section *this_00;\n  iterator iVar10;\n  off_t oVar11;\n  long lVar12;\n  char cVar13;\n  size_t __n;\n  Target *pTVar14;\n  byte *pbVar15;\n  Target *this_01;\n  byte *pbVar17;\n  uint uVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  char **local_80;\n  __node_gen_type __node_gen;\n  Key name_key;\n  uint local_50;\n  undefined1 local_48 [24];\n  Target *pTVar16;\n  \n  bVar23 = 0;\n  *off = 0;\n  bVar6 = include_section<32,_false>(this,object,name,shdr);\n  if (!bVar6) {\n    return (Output_section *)0x0;\n  }\n  pGVar2 = parameters->options_;\n  if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n  if (((pGVar2->relocatable_).value == false) || (uVar1 = shdr->p_->sh_flags, (uVar1 & 0x200) == 0))\n  {\n    uVar19 = 0;\n    uVar21 = (pGVar2->text_unlikely_segment_).value == false;\n    if (!(bool)uVar21) {\n      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);\n      lVar12 = 0xe;\n      pTVar14 = (Target *)".text.unlikely";\n      pTVar16 = (Target *)name_key;\n      do {\n        this_01 = pTVar16;\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        this_01 = pTVar16 + (ulong)bVar23 * -2 + 1;\n        uVar19 = (byte)*pTVar14 < (byte)*pTVar16;\n        uVar21 = *pTVar14 == *pTVar16;\n        pTVar14 = pTVar14 + (ulong)bVar23 * -2 + 1;\n        pTVar16 = this_01;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        uVar1 = shdr->p_->sh_flags;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001ba803;\n        uVar18 = uVar1 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar18 = uVar1 & 0xfffff58f;\n        }\n        pcVar9 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)\n        ;\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if ((undefined1 *)name_key != local_48) {\n        operator_delete((void *)name_key);\n      }\n    }\n    this_01 = (Target *)&this->section_segment_map_;\n    name_key = (Key)object;\n    local_50 = shndx;\n    iVar10 = std::\n             _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n             ::find((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6) {\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar12 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar17 = (byte *)name;\n    do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar20 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);\n    bVar22 = false;\n    bVar6 = (!bVar20 && !bVar6) == bVar20;\n    if (bVar6) goto LAB_001ba4e0;\n    lVar12 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar17 = (byte *)name;\n    do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar22 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);\n    bVar20 = false;\n    bVar6 = (!bVar22 && !bVar6) == bVar22;\n    if (bVar6) goto LAB_001ba4e0;\n    lVar12 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar17 = (byte *)name;\n    do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar20 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);\n    if ((!bVar20 && !bVar6) == bVar20) goto LAB_001ba4e0;\n    bVar6 = false;\n    bVar22 = (pGVar2->ctors_in_init_array_).value == false;\n    if (!bVar22) {\n      lVar12 = 7;\n      pbVar15 = (byte *)name;\n      pbVar17 = (byte *)".ctors";\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar6 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n      } while (bVar22);\n      bVar20 = false;\n      bVar6 = (!bVar6 && !bVar22) == bVar6;\n      if (!bVar6) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".dtors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar20 = *pbVar15 < *pbVar17;\n          bVar6 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar6);\n        if ((!bVar20 && !bVar6) != bVar20) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if ((pGVar2->text_reorder_).value != false) goto LAB_001ba504;\nLAB_001ba62e:\n    cVar13 = (pGVar2->relocatable_).value;\nLAB_001ba636:\n    if (cVar13 == '\0') {\nLAB_001ba63e:\n      uVar1 = shdr->p_->sh_size;\n      bVar6 = uVar1 < 4;\n      bVar22 = uVar1 == 4;\n      if (4 < uVar1) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar6 = *pbVar15 < *pbVar17;\n          bVar22 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar22);\n        bVar20 = false;\n        bVar6 = (!bVar6 && !bVar22) == bVar6;\n        if (bVar6) {\nLAB_001ba680:\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) goto LAB_001ba6e0;\n        }\n        else {\n          lVar12 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar17 = (byte *)name;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar20 && !bVar6) == bVar20;\n          if (bVar6) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar22 = false;\n          lVar12 = 7;\n          pbVar15 = (byte *)name;\n          pbVar17 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar20 = false;\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;\n        }\n        __node_gen._M_h = (__hashtable_alloc *)&ctors_sections_in_init_array;\n        name_key = (Key)object;\n        local_50 = shndx;\n        std::\n        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);\n        cVar13 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001ba52a;\n      }\n    }\n  }\nLAB_001ba528:\n  cVar13 = false;\nLAB_001ba52a:\n  uVar5 = this_00->flags_;\n  oVar11 = Output_section::add_input_section<32,_false>\n                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar13);\n  *off = oVar11;\n  if (((uVar5 & 2) != 0) && (((uint)uVar5 & 5) != ((uint)this_00->flags_ & 5))) {\n    OVar7 = default_section_order(this,this_00,false);\n    this_00->order_ = OVar7;\n  }\n  this->have_added_input_section_ = true;\n  return this_00;\n}\n\n" comment comment comment (ERROR "Output_section * __thiscall\ngold::Layout::layout<32,_false>\n          (Layout *this,Sized_relobj_file<32,_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)" (binary_expression "Output_section * __thiscall\ngold::Layout::layout<32,_false>\n          (Layout *this,Sized_relobj_file<32,_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)" (binary_expression "Output_section * __thiscall\ngold::Layout::layout<32" (binary_expression "Output_section * __thiscall" identifier * identifier) (ERROR "gold::Layout::layout" identifier : : identifier : : identifier) < number_literal) (ERROR ",_false" , identifier) > (parenthesized_expression "(Layout *this,Sized_relobj_file<32,_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)" ( (comma_expression "Layout *this,Sized_relobj_file<32,_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off" (binary_expression "Layout *this" identifier * identifier) , (comma_expression "Sized_relobj_file<32,_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off" (binary_expression "_false> *object" identifier > (pointer_expression "*object" * identifier)) , (ERROR "uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint" identifier (comma_expression "shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint" identifier , (comma_expression "char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint" (binary_expression "char *name" identifier * identifier) , (comma_expression "Shdr<32,_false> *shdr,uint sh_type,uint" (binary_expression "Shdr<32" identifier < number_literal) , (comma_expression "_false> *shdr,uint sh_type,uint" (binary_expression "_false> *shdr" identifier > (pointer_expression "*shdr" * identifier)) , (ERROR "uint" identifier) (comma_expression "sh_type,uint" identifier , identifier)))))) (comma_expression "reloc_shndx,uint param_7,off_t *off" identifier , (ERROR "uint" identifier) (comma_expression "param_7,off_t *off" identifier , (binary_expression "off_t *off" identifier * identifier)))))) )))) (compound_statement "{\n  uint uVar1;\n  General_options *pGVar2;\n  _Base_ptr p_Var3;\n  Script_options *pSVar4;\n  ulong uVar5;\n  bool bVar6;\n  Output_section_order OVar7;\n  int iVar8;\n  char *pcVar9;\n  Output_section *this_00;\n  iterator iVar10;\n  off_t oVar11;\n  long lVar12;\n  char cVar13;\n  size_t __n;\n  Target *pTVar14;\n  byte *pbVar15;\n  Target *this_01;\n  byte *pbVar17;\n  uint uVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  char **local_80;\n  __node_gen_type __node_gen;\n  Key name_key;\n  uint local_50;\n  undefined1 local_48 [24];\n  Target *pTVar16;\n  \n  bVar23 = 0;\n  *off = 0;\n  bVar6 = include_section<32,_false>(this,object,name,shdr);\n  if (!bVar6) {\n    return (Output_section *)0x0;\n  }\n  pGVar2 = parameters->options_;\n  if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n  if (((pGVar2->relocatable_).value == false) || (uVar1 = shdr->p_->sh_flags, (uVar1 & 0x200) == 0))\n  {\n    uVar19 = 0;\n    uVar21 = (pGVar2->text_unlikely_segment_).value == false;\n    if (!(bool)uVar21) {\n      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);\n      lVar12 = 0xe;\n      pTVar14 = (Target *)".text.unlikely";\n      pTVar16 = (Target *)name_key;\n      do {\n        this_01 = pTVar16;\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        this_01 = pTVar16 + (ulong)bVar23 * -2 + 1;\n        uVar19 = (byte)*pTVar14 < (byte)*pTVar16;\n        uVar21 = *pTVar14 == *pTVar16;\n        pTVar14 = pTVar14 + (ulong)bVar23 * -2 + 1;\n        pTVar16 = this_01;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        uVar1 = shdr->p_->sh_flags;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001ba803;\n        uVar18 = uVar1 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar18 = uVar1 & 0xfffff58f;\n        }\n        pcVar9 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)\n        ;\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if ((undefined1 *)name_key != local_48) {\n        operator_delete((void *)name_key);\n      }\n    }\n    this_01 = (Target *)&this->section_segment_map_;\n    name_key = (Key)object;\n    local_50 = shndx;\n    iVar10 = std::\n             _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n             ::find((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6) {\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar12 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar17 = (byte *)name;\n    do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar20 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);\n    bVar22 = false;\n    bVar6 = (!bVar20 && !bVar6) == bVar20;\n    if (bVar6) goto LAB_001ba4e0;\n    lVar12 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar17 = (byte *)name;\n    do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar22 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);\n    bVar20 = false;\n    bVar6 = (!bVar22 && !bVar6) == bVar22;\n    if (bVar6) goto LAB_001ba4e0;\n    lVar12 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar17 = (byte *)name;\n    do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar20 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);\n    if ((!bVar20 && !bVar6) == bVar20) goto LAB_001ba4e0;\n    bVar6 = false;\n    bVar22 = (pGVar2->ctors_in_init_array_).value == false;\n    if (!bVar22) {\n      lVar12 = 7;\n      pbVar15 = (byte *)name;\n      pbVar17 = (byte *)".ctors";\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar6 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n      } while (bVar22);\n      bVar20 = false;\n      bVar6 = (!bVar6 && !bVar22) == bVar6;\n      if (!bVar6) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".dtors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar20 = *pbVar15 < *pbVar17;\n          bVar6 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar6);\n        if ((!bVar20 && !bVar6) != bVar20) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if ((pGVar2->text_reorder_).value != false) goto LAB_001ba504;\nLAB_001ba62e:\n    cVar13 = (pGVar2->relocatable_).value;\nLAB_001ba636:\n    if (cVar13 == '\0') {\nLAB_001ba63e:\n      uVar1 = shdr->p_->sh_size;\n      bVar6 = uVar1 < 4;\n      bVar22 = uVar1 == 4;\n      if (4 < uVar1) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar6 = *pbVar15 < *pbVar17;\n          bVar22 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar22);\n        bVar20 = false;\n        bVar6 = (!bVar6 && !bVar22) == bVar6;\n        if (bVar6) {\nLAB_001ba680:\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) goto LAB_001ba6e0;\n        }\n        else {\n          lVar12 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar17 = (byte *)name;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar20 && !bVar6) == bVar20;\n          if (bVar6) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar22 = false;\n          lVar12 = 7;\n          pbVar15 = (byte *)name;\n          pbVar17 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar20 = false;\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;\n        }\n        __node_gen._M_h = (__hashtable_alloc *)&ctors_sections_in_init_array;\n        name_key = (Key)object;\n        local_50 = shndx;\n        std::\n        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);\n        cVar13 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001ba52a;\n      }\n    }\n  }\nLAB_001ba528:\n  cVar13 = false;\nLAB_001ba52a:\n  uVar5 = this_00->flags_;\n  oVar11 = Output_section::add_input_section<32,_false>\n                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar13);\n  *off = oVar11;\n  if (((uVar5 & 2) != 0) && (((uint)uVar5 & 5) != ((uint)this_00->flags_ & 5))) {\n    OVar7 = default_section_order(this,this_00,false);\n    this_00->order_ = OVar7;\n  }\n  this->have_added_input_section_ = true;\n  return this_00;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "General_options *pGVar2;" type_identifier (pointer_declarator "*pGVar2" * identifier) ;) (declaration "_Base_ptr p_Var3;" type_identifier identifier ;) (declaration "Script_options *pSVar4;" type_identifier (pointer_declarator "*pSVar4" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "Output_section_order OVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "Output_section *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "iterator iVar10;" type_identifier identifier ;) (declaration "off_t oVar11;" type_identifier identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "char cVar13;" primitive_type identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "Target *pTVar14;" type_identifier (pointer_declarator "*pTVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "Target *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined1 uVar19;" type_identifier identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "undefined1 uVar21;" type_identifier identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "char **local_80;" primitive_type (pointer_declarator "**local_80" * (pointer_declarator "*local_80" * identifier)) ;) (declaration "__node_gen_type __node_gen;" type_identifier identifier ;) (declaration "Key name_key;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined1 local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (declaration "Target *pTVar16;" type_identifier (pointer_declarator "*pTVar16" * identifier) ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "*off = 0;" (assignment_expression "*off = 0" (pointer_expression "*off" * identifier) = number_literal) ;) (expression_statement "bVar6 = include_section<32,_false>(this,object,name,shdr);" (comma_expression "bVar6 = include_section<32,_false>(this,object,name,shdr)" (assignment_expression "bVar6 = include_section<32" identifier = (binary_expression "include_section<32" identifier < number_literal)) , (binary_expression "_false>(this,object,name,shdr)" identifier > (parenthesized_expression "(this,object,name,shdr)" ( (comma_expression "this,object,name,shdr" identifier , (comma_expression "object,name,shdr" identifier , (comma_expression "name,shdr" identifier , identifier))) )))) ;) (if_statement "if (!bVar6) {\n    return (Output_section *)0x0;\n  }" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (compound_statement "{\n    return (Output_section *)0x0;\n  }" { (return_statement "return (Output_section *)0x0;" return (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "pGVar2 = parameters->options_;" (assignment_expression "pGVar2 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;" if (parenthesized_expression "(pGVar2 == (General_options *)0x0)" ( (binary_expression "pGVar2 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001ba729;" goto statement_identifier ;)) (if_statement "if (((pGVar2->relocatable_).value == false) || (uVar1 = shdr->p_->sh_flags, (uVar1 & 0x200) == 0))\n  {\n    uVar19 = 0;\n    uVar21 = (pGVar2->text_unlikely_segment_).value == false;\n    if (!(bool)uVar21) {\n      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);\n      lVar12 = 0xe;\n      pTVar14 = (Target *)".text.unlikely";\n      pTVar16 = (Target *)name_key;\n      do {\n        this_01 = pTVar16;\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        this_01 = pTVar16 + (ulong)bVar23 * -2 + 1;\n        uVar19 = (byte)*pTVar14 < (byte)*pTVar16;\n        uVar21 = *pTVar14 == *pTVar16;\n        pTVar14 = pTVar14 + (ulong)bVar23 * -2 + 1;\n        pTVar16 = this_01;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        uVar1 = shdr->p_->sh_flags;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001ba803;\n        uVar18 = uVar1 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar18 = uVar1 & 0xfffff58f;\n        }\n        pcVar9 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)\n        ;\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if ((undefined1 *)name_key != local_48) {\n        operator_delete((void *)name_key);\n      }\n    }\n    this_01 = (Target *)&this->section_segment_map_;\n    name_key = (Key)object;\n    local_50 = shndx;\n    iVar10 = std::\n             _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n             ::find((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6) {\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar12 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar17 = (byte *)name;\n    do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar20 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);\n    bVar22 = false;\n    bVar6 = (!bVar20 && !bVar6) == bVar20;\n    if (bVar6) goto LAB_001ba4e0;\n    lVar12 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar17 = (byte *)name;\n    do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar22 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);\n    bVar20 = false;\n    bVar6 = (!bVar22 && !bVar6) == bVar22;\n    if (bVar6) goto LAB_001ba4e0;\n    lVar12 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar17 = (byte *)name;\n    do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar20 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);\n    if ((!bVar20 && !bVar6) == bVar20) goto LAB_001ba4e0;\n    bVar6 = false;\n    bVar22 = (pGVar2->ctors_in_init_array_).value == false;\n    if (!bVar22) {\n      lVar12 = 7;\n      pbVar15 = (byte *)name;\n      pbVar17 = (byte *)".ctors";\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar6 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n      } while (bVar22);\n      bVar20 = false;\n      bVar6 = (!bVar6 && !bVar22) == bVar6;\n      if (!bVar6) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".dtors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar20 = *pbVar15 < *pbVar17;\n          bVar6 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar6);\n        if ((!bVar20 && !bVar6) != bVar20) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if ((pGVar2->text_reorder_).value != false) goto LAB_001ba504;\nLAB_001ba62e:\n    cVar13 = (pGVar2->relocatable_).value;\nLAB_001ba636:\n    if (cVar13 == '\0') {\nLAB_001ba63e:\n      uVar1 = shdr->p_->sh_size;\n      bVar6 = uVar1 < 4;\n      bVar22 = uVar1 == 4;\n      if (4 < uVar1) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar6 = *pbVar15 < *pbVar17;\n          bVar22 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar22);\n        bVar20 = false;\n        bVar6 = (!bVar6 && !bVar22) == bVar6;\n        if (bVar6) {\nLAB_001ba680:\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) goto LAB_001ba6e0;\n        }\n        else {\n          lVar12 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar17 = (byte *)name;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar20 && !bVar6) == bVar20;\n          if (bVar6) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar22 = false;\n          lVar12 = 7;\n          pbVar15 = (byte *)name;\n          pbVar17 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar20 = false;\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;\n        }\n        __node_gen._M_h = (__hashtable_alloc *)&ctors_sections_in_init_array;\n        name_key = (Key)object;\n        local_50 = shndx;\n        std::\n        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);\n        cVar13 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001ba52a;\n      }\n    }\n  }" if (parenthesized_expression "(((pGVar2->relocatable_).value == false) || (uVar1 = shdr->p_->sh_flags, (uVar1 & 0x200) == 0))" ( (binary_expression "((pGVar2->relocatable_).value == false) || (uVar1 = shdr->p_->sh_flags, (uVar1 & 0x200) == 0)" (parenthesized_expression "((pGVar2->relocatable_).value == false)" ( (binary_expression "(pGVar2->relocatable_).value == false" (field_expression "(pGVar2->relocatable_).value" (parenthesized_expression "(pGVar2->relocatable_)" ( (field_expression "pGVar2->relocatable_" identifier -> field_identifier) )) . field_identifier) == false) )) || (parenthesized_expression "(uVar1 = shdr->p_->sh_flags, (uVar1 & 0x200) == 0)" ( (comma_expression "uVar1 = shdr->p_->sh_flags, (uVar1 & 0x200) == 0" (assignment_expression "uVar1 = shdr->p_->sh_flags" identifier = (field_expression "shdr->p_->sh_flags" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier)) , (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n    uVar19 = 0;\n    uVar21 = (pGVar2->text_unlikely_segment_).value == false;\n    if (!(bool)uVar21) {\n      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);\n      lVar12 = 0xe;\n      pTVar14 = (Target *)".text.unlikely";\n      pTVar16 = (Target *)name_key;\n      do {\n        this_01 = pTVar16;\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        this_01 = pTVar16 + (ulong)bVar23 * -2 + 1;\n        uVar19 = (byte)*pTVar14 < (byte)*pTVar16;\n        uVar21 = *pTVar14 == *pTVar16;\n        pTVar14 = pTVar14 + (ulong)bVar23 * -2 + 1;\n        pTVar16 = this_01;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        uVar1 = shdr->p_->sh_flags;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001ba803;\n        uVar18 = uVar1 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar18 = uVar1 & 0xfffff58f;\n        }\n        pcVar9 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)\n        ;\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if ((undefined1 *)name_key != local_48) {\n        operator_delete((void *)name_key);\n      }\n    }\n    this_01 = (Target *)&this->section_segment_map_;\n    name_key = (Key)object;\n    local_50 = shndx;\n    iVar10 = std::\n             _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n             ::find((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6) {\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar12 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar17 = (byte *)name;\n    do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar20 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);\n    bVar22 = false;\n    bVar6 = (!bVar20 && !bVar6) == bVar20;\n    if (bVar6) goto LAB_001ba4e0;\n    lVar12 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar17 = (byte *)name;\n    do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar22 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);\n    bVar20 = false;\n    bVar6 = (!bVar22 && !bVar6) == bVar22;\n    if (bVar6) goto LAB_001ba4e0;\n    lVar12 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar17 = (byte *)name;\n    do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar20 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);\n    if ((!bVar20 && !bVar6) == bVar20) goto LAB_001ba4e0;\n    bVar6 = false;\n    bVar22 = (pGVar2->ctors_in_init_array_).value == false;\n    if (!bVar22) {\n      lVar12 = 7;\n      pbVar15 = (byte *)name;\n      pbVar17 = (byte *)".ctors";\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar6 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n      } while (bVar22);\n      bVar20 = false;\n      bVar6 = (!bVar6 && !bVar22) == bVar6;\n      if (!bVar6) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".dtors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar20 = *pbVar15 < *pbVar17;\n          bVar6 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar6);\n        if ((!bVar20 && !bVar6) != bVar20) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if ((pGVar2->text_reorder_).value != false) goto LAB_001ba504;\nLAB_001ba62e:\n    cVar13 = (pGVar2->relocatable_).value;\nLAB_001ba636:\n    if (cVar13 == '\0') {\nLAB_001ba63e:\n      uVar1 = shdr->p_->sh_size;\n      bVar6 = uVar1 < 4;\n      bVar22 = uVar1 == 4;\n      if (4 < uVar1) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar6 = *pbVar15 < *pbVar17;\n          bVar22 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar22);\n        bVar20 = false;\n        bVar6 = (!bVar6 && !bVar22) == bVar6;\n        if (bVar6) {\nLAB_001ba680:\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) goto LAB_001ba6e0;\n        }\n        else {\n          lVar12 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar17 = (byte *)name;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar20 && !bVar6) == bVar20;\n          if (bVar6) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar22 = false;\n          lVar12 = 7;\n          pbVar15 = (byte *)name;\n          pbVar17 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar20 = false;\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;\n        }\n        __node_gen._M_h = (__hashtable_alloc *)&ctors_sections_in_init_array;\n        name_key = (Key)object;\n        local_50 = shndx;\n        std::\n        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);\n        cVar13 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001ba52a;\n      }\n    }\n  }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = (pGVar2->text_unlikely_segment_).value == false;" (assignment_expression "uVar21 = (pGVar2->text_unlikely_segment_).value == false" identifier = (binary_expression "(pGVar2->text_unlikely_segment_).value == false" (field_expression "(pGVar2->text_unlikely_segment_).value" (parenthesized_expression "(pGVar2->text_unlikely_segment_)" ( (field_expression "pGVar2->text_unlikely_segment_" identifier -> field_identifier) )) . field_identifier) == false)) ;) (if_statement "if (!(bool)uVar21) {\n      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);\n      lVar12 = 0xe;\n      pTVar14 = (Target *)".text.unlikely";\n      pTVar16 = (Target *)name_key;\n      do {\n        this_01 = pTVar16;\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        this_01 = pTVar16 + (ulong)bVar23 * -2 + 1;\n        uVar19 = (byte)*pTVar14 < (byte)*pTVar16;\n        uVar21 = *pTVar14 == *pTVar16;\n        pTVar14 = pTVar14 + (ulong)bVar23 * -2 + 1;\n        pTVar16 = this_01;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        uVar1 = shdr->p_->sh_flags;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001ba803;\n        uVar18 = uVar1 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar18 = uVar1 & 0xfffff58f;\n        }\n        pcVar9 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)\n        ;\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if ((undefined1 *)name_key != local_48) {\n        operator_delete((void *)name_key);\n      }\n    }" if (parenthesized_expression "(!(bool)uVar21)" ( (unary_expression "!(bool)uVar21" ! (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);\n      lVar12 = 0xe;\n      pTVar14 = (Target *)".text.unlikely";\n      pTVar16 = (Target *)name_key;\n      do {\n        this_01 = pTVar16;\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        this_01 = pTVar16 + (ulong)bVar23 * -2 + 1;\n        uVar19 = (byte)*pTVar14 < (byte)*pTVar16;\n        uVar21 = *pTVar14 == *pTVar16;\n        pTVar14 = pTVar14 + (ulong)bVar23 * -2 + 1;\n        pTVar16 = this_01;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        uVar1 = shdr->p_->sh_flags;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001ba803;\n        uVar18 = uVar1 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar18 = uVar1 & 0xfffff58f;\n        }\n        pcVar9 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)\n        ;\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if ((undefined1 *)name_key != local_48) {\n        operator_delete((void *)name_key);\n      }\n    }" { (expression_statement "(*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);" (call_expression "(*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx)" (parenthesized_expression "(*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])" ( (pointer_expression "*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10]" * (subscript_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10]" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object" (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) [ number_literal ])) )) (argument_list "((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx)" ( (binary_expression "(pair<const_gold::Relobj*,_unsigned_int> *)&name_key" (parenthesized_expression "(pair<const_gold::Relobj*,_unsigned_int> *)" ( (binary_expression "pair<const_gold::Relobj*,_unsigned_int> *" (binary_expression "pair<const_gold::Relobj*,_unsigned_int" (binary_expression "pair<const_gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "*" * identifier)) )) & identifier) , identifier , (cast_expression "(ulong)shndx" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "lVar12 = 0xe;" (assignment_expression "lVar12 = 0xe" identifier = number_literal) ;) (expression_statement "pTVar14 = (Target *)".text.unlikely";" (assignment_expression "pTVar14 = (Target *)".text.unlikely"" identifier = (cast_expression "(Target *)".text.unlikely"" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".text.unlikely"" " string_content "))) ;) (expression_statement "pTVar16 = (Target *)name_key;" (assignment_expression "pTVar16 = (Target *)name_key" identifier = (cast_expression "(Target *)name_key" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n        this_01 = pTVar16;\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        this_01 = pTVar16 + (ulong)bVar23 * -2 + 1;\n        uVar19 = (byte)*pTVar14 < (byte)*pTVar16;\n        uVar21 = *pTVar14 == *pTVar16;\n        pTVar14 = pTVar14 + (ulong)bVar23 * -2 + 1;\n        pTVar16 = this_01;\n      } while ((bool)uVar21);" do (compound_statement "{\n        this_01 = pTVar16;\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        this_01 = pTVar16 + (ulong)bVar23 * -2 + 1;\n        uVar19 = (byte)*pTVar14 < (byte)*pTVar16;\n        uVar21 = *pTVar14 == *pTVar16;\n        pTVar14 = pTVar14 + (ulong)bVar23 * -2 + 1;\n        pTVar16 = this_01;\n      }" { (expression_statement "this_01 = pTVar16;" (assignment_expression "this_01 = pTVar16" identifier = identifier) ;) (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "this_01 = pTVar16 + (ulong)bVar23 * -2 + 1;" (assignment_expression "this_01 = pTVar16 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pTVar16 + (ulong)bVar23 * -2 + 1" (binary_expression "pTVar16 + (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 "uVar19 = (byte)*pTVar14 < (byte)*pTVar16;" (assignment_expression "uVar19 = (byte)*pTVar14 < (byte)*pTVar16" identifier = (binary_expression "(byte)*pTVar14 < (byte)*pTVar16" (binary_expression "(byte)*pTVar14" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pTVar16" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "uVar21 = *pTVar14 == *pTVar16;" (assignment_expression "uVar21 = *pTVar14 == *pTVar16" identifier = (binary_expression "*pTVar14 == *pTVar16" (pointer_expression "*pTVar14" * identifier) == (pointer_expression "*pTVar16" * identifier))) ;) (expression_statement "pTVar14 = pTVar14 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pTVar14 = pTVar14 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pTVar14 + (ulong)bVar23 * -2 + 1" (binary_expression "pTVar14 + (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 "pTVar16 = this_01;" (assignment_expression "pTVar16 = this_01" identifier = identifier) ;) }) while (parenthesized_expression "((bool)uVar21)" ( (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        uVar1 = shdr->p_->sh_flags;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001ba803;\n        uVar18 = uVar1 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar18 = uVar1 & 0xfffff58f;\n        }\n        pcVar9 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)\n        ;\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001ba3f8;\n      }" if (parenthesized_expression "((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19)" ( (binary_expression "(!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19" (parenthesized_expression "(!(bool)uVar19 && !(bool)uVar21)" ( (binary_expression "!(bool)uVar19 && !(bool)uVar21" (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar21" ! (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        uVar1 = shdr->p_->sh_flags;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001ba803;\n        uVar18 = uVar1 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar18 = uVar1 & 0xfffff58f;\n        }\n        pcVar9 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)\n        ;\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001ba3f8;\n      }" { (if_statement "if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }" if (parenthesized_expression "((undefined1 *)name_key != local_48)" ( (binary_expression "(undefined1 *)name_key != local_48" (cast_expression "(undefined1 *)name_key" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }" { (expression_statement "this_01 = (Target *)name_key;" (assignment_expression "this_01 = (Target *)name_key" identifier = (cast_expression "(Target *)name_key" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "operator_delete((void *)name_key);" (call_expression "operator_delete((void *)name_key)" identifier (argument_list "((void *)name_key)" ( (cast_expression "(void *)name_key" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "uVar1 = shdr->p_->sh_flags;" (assignment_expression "uVar1 = shdr->p_->sh_flags" identifier = (field_expression "shdr->p_->sh_flags" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (parameters->options_ == (General_options *)0x0) goto LAB_001ba803;" 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_001ba803;" goto statement_identifier ;)) (expression_statement "uVar18 = uVar1 & 0xfffff50f;" (assignment_expression "uVar18 = uVar1 & 0xfffff50f" identifier = (binary_expression "uVar1 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if ((parameters->options_->relocatable_).value != false) {\n          uVar18 = uVar1 & 0xfffff58f;\n        }" if (parenthesized_expression "((parameters->options_->relocatable_).value != false)" ( (binary_expression "(parameters->options_->relocatable_).value != false" (field_expression "(parameters->options_->relocatable_).value" (parenthesized_expression "(parameters->options_->relocatable_)" ( (field_expression "parameters->options_->relocatable_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n          uVar18 = uVar1 & 0xfffff58f;\n        }" { (expression_statement "uVar18 = uVar1 & 0xfffff58f;" (assignment_expression "uVar18 = uVar1 & 0xfffff58f" identifier = (binary_expression "uVar1 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "pcVar9 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);" (assignment_expression "pcVar9 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key)" identifier = (binary_expression "Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add(&this->namepool_,".text.unlikely",true,&name_key)" identifier (argument_list "(&this->namepool_,".text.unlikely",true,&name_key)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , (string_literal "".text.unlikely"" " string_content ") , true , (pointer_expression "&name_key" & identifier) ))))) ;) (expression_statement "this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)\n        ;" (assignment_expression "this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)" identifier = (call_expression "get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)" identifier (argument_list "(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)" ( identifier , identifier , identifier , identifier , (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier , false )))) ;) (expression_statement "this_00->field_0xca = this_00->field_0xca | 0x80;" (assignment_expression "this_00->field_0xca = this_00->field_0xca | 0x80" (field_expression "this_00->field_0xca" identifier -> field_identifier) = (binary_expression "this_00->field_0xca | 0x80" (field_expression "this_00->field_0xca" identifier -> field_identifier) | number_literal)) ;) (goto_statement "goto LAB_001ba3f8;" goto statement_identifier ;) })) (if_statement "if ((undefined1 *)name_key != local_48) {\n        operator_delete((void *)name_key);\n      }" if (parenthesized_expression "((undefined1 *)name_key != local_48)" ( (binary_expression "(undefined1 *)name_key != local_48" (cast_expression "(undefined1 *)name_key" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n        operator_delete((void *)name_key);\n      }" { (expression_statement "operator_delete((void *)name_key);" (call_expression "operator_delete((void *)name_key)" identifier (argument_list "((void *)name_key)" ( (cast_expression "(void *)name_key" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) })) (expression_statement "this_01 = (Target *)&this->section_segment_map_;" (assignment_expression "this_01 = (Target *)&this->section_segment_map_" identifier = (cast_expression "(Target *)&this->section_segment_map_" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->section_segment_map_" & (field_expression "this->section_segment_map_" identifier -> field_identifier)))) ;) (expression_statement "name_key = (Key)object;" (assignment_expression "name_key = (Key)object" identifier = (cast_expression "(Key)object" ( (type_descriptor "Key" type_identifier) ) identifier)) ;) (expression_statement "local_50 = shndx;" (assignment_expression "local_50 = shndx" identifier = identifier) ;) (ERROR "iVar10 = std::\n             _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::" (assignment_expression "iVar10 = std" identifier = identifier) : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (comma_expression "Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold" identifier (ERROR "::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>" : : (comma_expression "Unique_segment_info*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "Layout::Unique_segment_info*>_>,_std" (binary_expression "Layout::Unique_segment_info*>_" identifier (ERROR "::Unique_segment_info*" : : identifier *) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_gold" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : :) (expression_statement "Layout::Unique_segment_info*>_>_>\n             ::find((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6) {\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar12 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar17 = (byte *)name;" (binary_expression "Layout::Unique_segment_info*>_>_>\n             ::find((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6) {\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar12 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar17 = (byte *)name" (binary_expression "Layout::Unique_segment_info*>_>_" (binary_expression "Layout::Unique_segment_info*>_" identifier (ERROR "::Unique_segment_info*" : : identifier *) > identifier) > identifier) > (ERROR "::" : :) (call_expression "find((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6) {\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar12 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar17 = (byte *)name" identifier (argument_list "((_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6) {\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar12 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar17 = (byte *)name" ( (assignment_expression "(_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6) {\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar12 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar17 = (byte *)name" (field_expression "(_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6) {\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar12 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar17" (field_expression "(_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6) {\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar12 = 7;\n    pbVar15 = (byte *)".dtors" (parenthesized_expression "(_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6) {\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar12 = 7;\n    pbVar15 = (byte *)" ( (ERROR "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std::_Select1st<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>,_std::less<std::pair<const_gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key);\n    if ((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }\n  }\n  else {\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)\n    ;\n  }\nLAB_001ba3f8:\n  pSVar4 = this->script_options_;\n  cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false) {\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (pGVar2 == (General_options *)0x0) {\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar6 = false;\n  bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22) goto LAB_001ba620;\n  lVar12 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar17 = (byte *)name;\n  do {\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  } while (bVar22);\n  bVar20 = false;\n  bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6)" (comma_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold::Layout::Unique_segment_info*>,_std" (binary_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int>,_gold" (binary_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std::pair<const_gold" (binary_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std::pair<const_std" (binary_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int" (binary_expression "_Rb_tree<std::pair<const_gold" (binary_expression "_Rb_tree<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Layout::Unique_segment_info*>" : : identifier : : identifier * >) , identifier) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : identifier : : (binary_expression "Unique_segment_info*>_>,_std" (binary_expression "Unique_segment_info*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : : (binary_expression "less<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>,_gold" identifier > (ERROR "," ,) identifier) : : identifier : : (comma_expression "Unique_segment_info*>_>_>\n                     *)this_01,(pair<const_gold::Relobj*,_unsigned_int> *)&name_key)" (binary_expression "Unique_segment_info*>_>_>\n                     *)this_01" (binary_expression "Unique_segment_info*>_>_" (binary_expression "Unique_segment_info*>_" identifier * (ERROR ">" >) identifier) > identifier) > (pointer_expression "*)this_01" * (ERROR ")" )) identifier)) , (parenthesized_expression "(pair<const_gold::Relobj*,_unsigned_int> *)&name_key)" ( (binary_expression "pair<const_gold::Relobj*,_unsigned_int> *)&name_key" (binary_expression "pair<const_gold::Relobj*,_unsigned_int" (binary_expression "pair<const_gold" identifier < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (pointer_expression "*)&name_key" * (ERROR ")" )) (pointer_expression "&name_key" & identifier))) ))) ; if (parenthesized_expression "((_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header)" ( (binary_expression "(_Rb_tree_header *)iVar10._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header" (cast_expression "(_Rb_tree_header *)iVar10._M_node" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "iVar10._M_node" identifier . field_identifier)) == (pointer_expression "&(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header" & (field_expression "(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(this->section_segment_map_)._M_t._M_impl" (field_expression "(this->section_segment_map_)._M_t" (parenthesized_expression "(this->section_segment_map_)" ( (field_expression "this->section_segment_map_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier))) )) (compound_statement "{\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }" { (expression_statement "this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true);" (assignment_expression "this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true)" identifier = (call_expression "choose_output_section\n                          (this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true)" identifier (argument_list "(this,(Relobj *)object,name,sh_type,(ulong)shdr->p_->sh_flags,true,\n                           ORDER_INVALID,false,false,true)" ( identifier , (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , (cast_expression "(ulong)shdr->p_->sh_flags" ( (type_descriptor "ulong" type_identifier) ) (field_expression "shdr->p_->sh_flags" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier)) , true , identifier , false , false , true )))) ;) (if_statement "if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }" if (parenthesized_expression "(this_00 == (Output_section *)0x0)" ( (binary_expression "this_00 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (Output_section *)0x0;\n      }" { (return_statement "return (Output_section *)0x0;" return (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) else (compound_statement "{\n      uVar1 = shdr->p_->sh_flags;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar18 = uVar1 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }\n      pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }\n    }" { (expression_statement "uVar1 = shdr->p_->sh_flags;" (assignment_expression "uVar1 = shdr->p_->sh_flags" identifier = (field_expression "shdr->p_->sh_flags" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (parameters->options_ == (General_options *)0x0) {\nLAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\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_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }" { (labeled_statement "LAB_001ba803:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);" statement_identifier : comment (labeled_statement "Target::abi_pagesize(this_01);" statement_identifier : (ERROR ":" :) (expression_statement "abi_pagesize(this_01);" (call_expression "abi_pagesize(this_01)" identifier (argument_list "(this_01)" ( identifier ))) ;))) })) (expression_statement "uVar18 = uVar1 & 0xfffff50f;" (assignment_expression "uVar18 = uVar1 & 0xfffff50f" identifier = (binary_expression "uVar1 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if ((parameters->options_->relocatable_).value != false) {\n        uVar18 = uVar1 & 0xfffff58f;\n      }" if (parenthesized_expression "((parameters->options_->relocatable_).value != false)" ( (binary_expression "(parameters->options_->relocatable_).value != false" (field_expression "(parameters->options_->relocatable_).value" (parenthesized_expression "(parameters->options_->relocatable_)" ( (field_expression "parameters->options_->relocatable_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n        uVar18 = uVar1 & 0xfffff58f;\n      }" { (expression_statement "uVar18 = uVar1 & 0xfffff58f;" (assignment_expression "uVar18 = uVar1 & 0xfffff58f" identifier = (binary_expression "uVar1 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key);" (assignment_expression "pcVar9 = Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key)" identifier = (binary_expression "Stringpool_template<char>::add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add\n                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key)" identifier (argument_list "(&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&name_key)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , (pointer_expression "*(char **)iVar10._M_node[1]._M_left" * (cast_expression "(char **)iVar10._M_node[1]._M_left" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "iVar10._M_node[1]._M_left" (subscript_expression "iVar10._M_node[1]" (field_expression "iVar10._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier))) , true , (pointer_expression "&name_key" & identifier) ))))) ;) (expression_statement "this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false);" (assignment_expression "this_00 = get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)" identifier = (call_expression "get_output_section(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)" identifier (argument_list "(this,pcVar9,name_key,sh_type,(ulong)uVar18,ORDER_INVALID,false)" ( identifier , identifier , identifier , identifier , (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier , false )))) ;) (if_statement "if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }" if (parenthesized_expression "(-1 < (char)this_00->field_0xca)" ( (binary_expression "-1 < (char)this_00->field_0xca" number_literal < (cast_expression "(char)this_00->field_0xca" ( (type_descriptor "char" primitive_type) ) (field_expression "this_00->field_0xca" identifier -> field_identifier))) )) (compound_statement "{\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar10._M_node[1]._M_left;\n        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;\n        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;\n      }" { (expression_statement "this_00->field_0xca = this_00->field_0xca | 0x80;" (assignment_expression "this_00->field_0xca = this_00->field_0xca | 0x80" (field_expression "this_00->field_0xca" identifier -> field_identifier) = (binary_expression "this_00->field_0xca | 0x80" (field_expression "this_00->field_0xca" identifier -> field_identifier) | number_literal)) ;) (expression_statement "p_Var3 = iVar10._M_node[1]._M_left;" (assignment_expression "p_Var3 = iVar10._M_node[1]._M_left" identifier = (field_expression "iVar10._M_node[1]._M_left" (subscript_expression "iVar10._M_node[1]" (field_expression "iVar10._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;" (assignment_expression "this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent" (field_expression "this_00->extra_segment_flags_" identifier -> field_identifier) = (cast_expression "(uint64_t)p_Var3->_M_parent" ( (type_descriptor "uint64_t" primitive_type) ) (field_expression "p_Var3->_M_parent" identifier -> field_identifier))) ;) (expression_statement "this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;" (assignment_expression "this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left" (field_expression "this_00->segment_alignment_" identifier -> field_identifier) = (cast_expression "(uint64_t)p_Var3->_M_left" ( (type_descriptor "uint64_t" primitive_type) ) (field_expression "p_Var3->_M_left" identifier -> field_identifier))) ;) })) }) } else { identifier = identifier < primitive_type > : : (call_expression "add(&this->namepool_,name,true,(Key *)0x0)" identifier (argument_list "(&this->namepool_,name,true,(Key *)0x0)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , identifier , true , (cast_expression "(Key *)0x0" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ; (assignment_expression "this_00 = make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)" identifier = (call_expression "make_output_section(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)" identifier (argument_list "(this,name,sh_type,(ulong)(uVar1 & 0xfffff7ff),ORDER_INVALID,false)" ( identifier , identifier , identifier , (call_expression "(ulong)(uVar1 & 0xfffff7ff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar1 & 0xfffff7ff)" ( (binary_expression "uVar1 & 0xfffff7ff" identifier & number_literal) ))) , identifier , false )))) ; } identifier : (assignment_expression "pSVar4 = this->script_options_" identifier = (field_expression "this->script_options_" identifier -> field_identifier)) ; (assignment_expression "cVar13 = (pSVar4->script_sections_).saw_sections_clause_" identifier = (field_expression "(pSVar4->script_sections_).saw_sections_clause_" (parenthesized_expression "(pSVar4->script_sections_)" ( (field_expression "pSVar4->script_sections_" identifier -> field_identifier) )) . field_identifier)) ; (call_expression "pGVar2 = parameters->options_;\n  if ((bool)cVar13 != false)" (assignment_expression "pGVar2 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) (ERROR ";\n  if" ; if) (argument_list "((bool)cVar13 != false)" ( (binary_expression "(bool)cVar13 != false" (cast_expression "(bool)cVar13" ( (type_descriptor "bool" primitive_type) ) identifier) != false) ))) (compound_statement "{\n    if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }" { (if_statement "if (pGVar2 == (General_options *)0x0) goto LAB_001ba729;" if (parenthesized_expression "(pGVar2 == (General_options *)0x0)" ( (binary_expression "pGVar2 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001ba729;" goto statement_identifier ;)) (goto_statement "goto LAB_001ba52a;" goto statement_identifier ;) }) if (parenthesized_expression "(pGVar2 == (General_options *)0x0)" ( (binary_expression "pGVar2 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001ba729:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_001ba729:\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 ") ))) ;)) }) (assignment_expression "bVar6 = false" identifier = false) ; (call_expression "bVar22 = (pGVar2->relocatable_).value == false;\n  if (!bVar22)" (assignment_expression "bVar22 = (pGVar2->relocatable_).value == false" identifier = (binary_expression "(pGVar2->relocatable_).value == false" (field_expression "(pGVar2->relocatable_).value" (parenthesized_expression "(pGVar2->relocatable_)" ( (field_expression "pGVar2->relocatable_" identifier -> field_identifier) )) . field_identifier) == false)) (ERROR ";\n  if" ; if) (argument_list "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) ))) identifier identifier ; (assignment_expression "lVar12 = 7" identifier = number_literal) ; (assignment_expression "pbVar15 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ; (assignment_expression "pbVar17 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ; do (compound_statement "{\n    if (lVar12 == 0) break;\n    lVar12 = lVar12 + -1;\n    bVar6 = *pbVar15 < *pbVar17;\n    bVar22 = *pbVar15 == *pbVar17;\n    pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n    pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n  }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar6 = *pbVar15 < *pbVar17;" (assignment_expression "bVar6 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar22 = *pbVar15 == *pbVar17;" (assignment_expression "bVar22 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar17 + (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 )) ; (assignment_expression "bVar20 = false" identifier = false) ; (call_expression "bVar6 = (!bVar6 && !bVar22) == bVar6;\n  if (bVar6)" (assignment_expression "bVar6 = (!bVar6 && !bVar22) == bVar6" identifier = (binary_expression "(!bVar6 && !bVar22) == bVar6" (parenthesized_expression "(!bVar6 && !bVar22)" ( (binary_expression "!bVar6 && !bVar22" (unary_expression "!bVar6" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) (ERROR ";\n  if" ; if) (argument_list "(bVar6)" ( identifier )))) (compound_statement "{\nLAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if ((bool)cVar13 != false) goto LAB_001ba52a;\nLAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001ba636;\n    if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }\n  }" { (labeled_statement "LAB_001ba4e0:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;" statement_identifier : (expression_statement "this_00->field_0xc9 = this_00->field_0xc9 | 8;" (assignment_expression "this_00->field_0xc9 = this_00->field_0xc9 | 8" (field_expression "this_00->field_0xc9" identifier -> field_identifier) = (binary_expression "this_00->field_0xc9 | 8" (field_expression "this_00->field_0xc9" identifier -> field_identifier) | number_literal)) ;)) (expression_statement "cVar13 = (pSVar4->script_sections_).saw_sections_clause_;" (assignment_expression "cVar13 = (pSVar4->script_sections_).saw_sections_clause_" identifier = (field_expression "(pSVar4->script_sections_).saw_sections_clause_" (parenthesized_expression "(pSVar4->script_sections_)" ( (field_expression "pSVar4->script_sections_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((pGVar2->text_reorder_).value == false) {\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }" if (parenthesized_expression "((pGVar2->text_reorder_).value == false)" ( (binary_expression "(pGVar2->text_reorder_).value == false" (field_expression "(pGVar2->text_reorder_).value" (parenthesized_expression "(pGVar2->text_reorder_)" ( (field_expression "pGVar2->text_reorder_" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\nLAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }" { (labeled_statement "LAB_001ba75b:\n      if (cVar13 != '\0') goto LAB_001ba52a;" statement_identifier : (if_statement "if (cVar13 != '\0') goto LAB_001ba52a;" if (parenthesized_expression "(cVar13 != '\0')" ( (binary_expression "cVar13 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ba52a;" goto statement_identifier ;))) (goto_statement "goto LAB_001ba62e;" goto statement_identifier ;) })) (if_statement "if ((bool)cVar13 != false) goto LAB_001ba52a;" if (parenthesized_expression "((bool)cVar13 != false)" ( (binary_expression "(bool)cVar13 != false" (cast_expression "(bool)cVar13" ( (type_descriptor "bool" primitive_type) ) identifier) != false) )) (goto_statement "goto LAB_001ba52a;" goto statement_identifier ;)) (labeled_statement "LAB_001ba504:\n    cVar13 = (pGVar2->relocatable_).value;" statement_identifier : (expression_statement "cVar13 = (pGVar2->relocatable_).value;" (assignment_expression "cVar13 = (pGVar2->relocatable_).value" identifier = (field_expression "(pGVar2->relocatable_).value" (parenthesized_expression "(pGVar2->relocatable_)" ( (field_expression "pGVar2->relocatable_" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if (this->section_ordering_specified_ != false) goto LAB_001ba636;" if (parenthesized_expression "(this->section_ordering_specified_ != false)" ( (binary_expression "this->section_ordering_specified_ != false" (field_expression "this->section_ordering_specified_" identifier -> field_identifier) != false) )) (goto_statement "goto LAB_001ba636;" goto statement_identifier ;)) (if_statement "if ((bool)cVar13 == false) {\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }" if (parenthesized_expression "((bool)cVar13 == false)" ( (binary_expression "(bool)cVar13 == false" (cast_expression "(bool)cVar13" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) (compound_statement "{\n      __n = 0xe;\n      pcVar9 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar13 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001ba75b;\n    }" { (expression_statement "__n = 0xe;" (assignment_expression "__n = 0xe" identifier = number_literal) ;) (expression_statement "pcVar9 = ".text.unlikely";" (assignment_expression "pcVar9 = ".text.unlikely"" identifier = (string_literal "".text.unlikely"" " string_content ")) ;) (expression_statement "local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;" (assignment_expression "local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort" identifier = (cast_expression "(char **)special_ordering_of_input_section(char_const*)::text_section_sort" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "special_ordering_of_input_section(char_const*)::text_section_sort" identifier (argument_list "(char_const*)::text_section_sort" ( (binary_expression "char_const*)::text_section_sort" identifier * (ERROR ")::" ) : :) identifier) ))))) ;) (while_statement "while (iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }" while (parenthesized_expression "(iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0)" ( (comma_expression "iVar8 = strncmp(pcVar9,name,__n), iVar8 != 0" (assignment_expression "iVar8 = strncmp(pcVar9,name,__n)" identifier = (call_expression "strncmp(pcVar9,name,__n)" identifier (argument_list "(pcVar9,name,__n)" ( identifier , identifier , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) )) (compound_statement "{\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;\n        pcVar9 = *local_80;\n        __n = strlen(pcVar9);\n      }" { (expression_statement "local_80 = local_80 + 1;" (assignment_expression "local_80 = local_80 + 1" identifier = (binary_expression "local_80 + 1" identifier + number_literal)) ;) (if_statement "if (local_80 == gdb_fast_lookup_sections) goto LAB_001ba63e;" if (parenthesized_expression "(local_80 == gdb_fast_lookup_sections)" ( (binary_expression "local_80 == gdb_fast_lookup_sections" identifier == identifier) )) (goto_statement "goto LAB_001ba63e;" goto statement_identifier ;)) (expression_statement "pcVar9 = *local_80;" (assignment_expression "pcVar9 = *local_80" identifier = (pointer_expression "*local_80" * identifier)) ;) (expression_statement "__n = strlen(pcVar9);" (assignment_expression "__n = strlen(pcVar9)" identifier = (call_expression "strlen(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) })) (expression_statement "this_00->field_0xc9 = this_00->field_0xc9 | 8;" (assignment_expression "this_00->field_0xc9 = this_00->field_0xc9 | 8" (field_expression "this_00->field_0xc9" identifier -> field_identifier) = (binary_expression "this_00->field_0xc9 | 8" (field_expression "this_00->field_0xc9" identifier -> field_identifier) | number_literal)) ;) (expression_statement "cVar13 = (pSVar4->script_sections_).saw_sections_clause_;" (assignment_expression "cVar13 = (pSVar4->script_sections_).saw_sections_clause_" identifier = (field_expression "(pSVar4->script_sections_).saw_sections_clause_" (parenthesized_expression "(pSVar4->script_sections_)" ( (field_expression "pSVar4->script_sections_" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_001ba75b;" goto statement_identifier ;) })) }) (ERROR "else {\n    lVar12 = 7;\n    pbVar15 = (byte *" else { identifier = number_literal ; identifier = ( identifier *) )) (ERROR """ ") . field_identifier) . (ERROR "";" " ;) field_identifier) = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;) (do_statement "do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar20 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);" do (compound_statement "{\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar20 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar15 < *pbVar17;" (assignment_expression "bVar20 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar6 = *pbVar15 == *pbVar17;" (assignment_expression "bVar6 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar17 + (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 "(bVar6)" ( identifier )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar6 = (!bVar20 && !bVar6) == bVar20;" (assignment_expression "bVar6 = (!bVar20 && !bVar6) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar6) == bVar20" (parenthesized_expression "(!bVar20 && !bVar6)" ( (binary_expression "!bVar20 && !bVar6" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar6" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar6) goto LAB_001ba4e0;" if (parenthesized_expression "(bVar6)" ( identifier )) (goto_statement "goto LAB_001ba4e0;" goto statement_identifier ;)) (expression_statement "lVar12 = 0xc;" (assignment_expression "lVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".init_array.";" (assignment_expression "pbVar15 = (byte *)".init_array."" identifier = (cast_expression "(byte *)".init_array."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".init_array."" " string_content "))) ;) (expression_statement "pbVar17 = (byte *)name;" (assignment_expression "pbVar17 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar22 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);" do (compound_statement "{\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar22 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar15 < *pbVar17;" (assignment_expression "bVar22 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar6 = *pbVar15 == *pbVar17;" (assignment_expression "bVar6 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar17 + (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 "(bVar6)" ( identifier )) ;) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar6 = (!bVar22 && !bVar6) == bVar22;" (assignment_expression "bVar6 = (!bVar22 && !bVar6) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar6) == bVar22" (parenthesized_expression "(!bVar22 && !bVar6)" ( (binary_expression "!bVar22 && !bVar6" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar6" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar6) goto LAB_001ba4e0;" if (parenthesized_expression "(bVar6)" ( identifier )) (goto_statement "goto LAB_001ba4e0;" goto statement_identifier ;)) (expression_statement "lVar12 = 0xc;" (assignment_expression "lVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".fini_array.";" (assignment_expression "pbVar15 = (byte *)".fini_array."" identifier = (cast_expression "(byte *)".fini_array."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".fini_array."" " string_content "))) ;) (expression_statement "pbVar17 = (byte *)name;" (assignment_expression "pbVar17 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar20 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    } while (bVar6);" do (compound_statement "{\n      if (lVar12 == 0) break;\n      lVar12 = lVar12 + -1;\n      bVar20 = *pbVar15 < *pbVar17;\n      bVar6 = *pbVar15 == *pbVar17;\n      pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n      pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n    }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar15 < *pbVar17;" (assignment_expression "bVar20 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar6 = *pbVar15 == *pbVar17;" (assignment_expression "bVar6 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar17 + (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 "(bVar6)" ( identifier )) ;) (if_statement "if ((!bVar20 && !bVar6) == bVar20) goto LAB_001ba4e0;" if (parenthesized_expression "((!bVar20 && !bVar6) == bVar20)" ( (binary_expression "(!bVar20 && !bVar6) == bVar20" (parenthesized_expression "(!bVar20 && !bVar6)" ( (binary_expression "!bVar20 && !bVar6" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar6" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_001ba4e0;" goto statement_identifier ;)) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "bVar22 = (pGVar2->ctors_in_init_array_).value == false;" (assignment_expression "bVar22 = (pGVar2->ctors_in_init_array_).value == false" identifier = (binary_expression "(pGVar2->ctors_in_init_array_).value == false" (field_expression "(pGVar2->ctors_in_init_array_).value" (parenthesized_expression "(pGVar2->ctors_in_init_array_)" ( (field_expression "pGVar2->ctors_in_init_array_" identifier -> field_identifier) )) . field_identifier) == false)) ;) (if_statement "if (!bVar22) {\n      lVar12 = 7;\n      pbVar15 = (byte *)name;\n      pbVar17 = (byte *)".ctors";\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar6 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n      } while (bVar22);\n      bVar20 = false;\n      bVar6 = (!bVar6 && !bVar22) == bVar6;\n      if (!bVar6) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".dtors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar20 = *pbVar15 < *pbVar17;\n          bVar6 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar6);\n        if ((!bVar20 && !bVar6) != bVar20) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n      lVar12 = 7;\n      pbVar15 = (byte *)name;\n      pbVar17 = (byte *)".ctors";\n      do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar6 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n      } while (bVar22);\n      bVar20 = false;\n      bVar6 = (!bVar6 && !bVar22) == bVar6;\n      if (!bVar6) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".dtors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar20 = *pbVar15 < *pbVar17;\n          bVar6 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar6);\n        if ((!bVar20 && !bVar6) != bVar20) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }" { (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)name;" (assignment_expression "pbVar15 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar17 = (byte *)".ctors";" (assignment_expression "pbVar17 = (byte *)".ctors"" identifier = (cast_expression "(byte *)".ctors"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors"" " string_content "))) ;) (do_statement "do {\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar6 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n      } while (bVar22);" do (compound_statement "{\n        if (lVar12 == 0) break;\n        lVar12 = lVar12 + -1;\n        bVar6 = *pbVar15 < *pbVar17;\n        bVar22 = *pbVar15 == *pbVar17;\n        pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n        pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n      }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar6 = *pbVar15 < *pbVar17;" (assignment_expression "bVar6 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar22 = *pbVar15 == *pbVar17;" (assignment_expression "bVar22 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar17 + (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 )) ;) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar6 = (!bVar6 && !bVar22) == bVar6;" (assignment_expression "bVar6 = (!bVar6 && !bVar22) == bVar6" identifier = (binary_expression "(!bVar6 && !bVar22) == bVar6" (parenthesized_expression "(!bVar6 && !bVar22)" ( (binary_expression "!bVar6 && !bVar22" (unary_expression "!bVar6" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar6) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".dtors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar20 = *pbVar15 < *pbVar17;\n          bVar6 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar6);\n        if ((!bVar20 && !bVar6) != bVar20) goto LAB_001ba620;\n      }" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (compound_statement "{\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".dtors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar20 = *pbVar15 < *pbVar17;\n          bVar6 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar6);\n        if ((!bVar20 && !bVar6) != bVar20) goto LAB_001ba620;\n      }" { (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)name;" (assignment_expression "pbVar15 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar17 = (byte *)".dtors";" (assignment_expression "pbVar17 = (byte *)".dtors"" identifier = (cast_expression "(byte *)".dtors"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors"" " string_content "))) ;) (do_statement "do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar20 = *pbVar15 < *pbVar17;\n          bVar6 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar6);" do (compound_statement "{\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar20 = *pbVar15 < *pbVar17;\n          bVar6 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar15 < *pbVar17;" (assignment_expression "bVar20 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar6 = *pbVar15 == *pbVar17;" (assignment_expression "bVar6 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar17 + (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 "(bVar6)" ( identifier )) ;) (if_statement "if ((!bVar20 && !bVar6) != bVar20) goto LAB_001ba620;" if (parenthesized_expression "((!bVar20 && !bVar6) != bVar20)" ( (binary_expression "(!bVar20 && !bVar6) != bVar20" (parenthesized_expression "(!bVar20 && !bVar6)" ( (binary_expression "!bVar20 && !bVar6" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar6" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001ba620;" goto statement_identifier ;)) })) (goto_statement "goto LAB_001ba4e0;" goto statement_identifier ;) })) (labeled_statement "LAB_001ba620:\n    if ((pGVar2->text_reorder_).value != false) goto LAB_001ba504;" statement_identifier : (if_statement "if ((pGVar2->text_reorder_).value != false) goto LAB_001ba504;" if (parenthesized_expression "((pGVar2->text_reorder_).value != false)" ( (binary_expression "(pGVar2->text_reorder_).value != false" (field_expression "(pGVar2->text_reorder_).value" (parenthesized_expression "(pGVar2->text_reorder_)" ( (field_expression "pGVar2->text_reorder_" identifier -> field_identifier) )) . field_identifier) != false) )) (goto_statement "goto LAB_001ba504;" goto statement_identifier ;))) (labeled_statement "LAB_001ba62e:\n    cVar13 = (pGVar2->relocatable_).value;" statement_identifier : (expression_statement "cVar13 = (pGVar2->relocatable_).value;" (assignment_expression "cVar13 = (pGVar2->relocatable_).value" identifier = (field_expression "(pGVar2->relocatable_).value" (parenthesized_expression "(pGVar2->relocatable_)" ( (field_expression "pGVar2->relocatable_" identifier -> field_identifier) )) . field_identifier)) ;)) (labeled_statement "LAB_001ba636:\n    if (cVar13 == '\0') {\nLAB_001ba63e:\n      uVar1 = shdr->p_->sh_size;\n      bVar6 = uVar1 < 4;\n      bVar22 = uVar1 == 4;\n      if (4 < uVar1) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar6 = *pbVar15 < *pbVar17;\n          bVar22 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar22);\n        bVar20 = false;\n        bVar6 = (!bVar6 && !bVar22) == bVar6;\n        if (bVar6) {\nLAB_001ba680:\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) goto LAB_001ba6e0;\n        }\n        else {\n          lVar12 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar17 = (byte *)name;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar20 && !bVar6) == bVar20;\n          if (bVar6) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar22 = false;\n          lVar12 = 7;\n          pbVar15 = (byte *)name;\n          pbVar17 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar20 = false;\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;\n        }\n        __node_gen._M_h = (__hashtable_alloc *)&ctors_sections_in_init_array;\n        name_key = (Key)object;\n        local_50 = shndx;\n        std::\n        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);\n        cVar13 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001ba52a;\n      }\n    }" statement_identifier : (if_statement "if (cVar13 == '\0') {\nLAB_001ba63e:\n      uVar1 = shdr->p_->sh_size;\n      bVar6 = uVar1 < 4;\n      bVar22 = uVar1 == 4;\n      if (4 < uVar1) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar6 = *pbVar15 < *pbVar17;\n          bVar22 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar22);\n        bVar20 = false;\n        bVar6 = (!bVar6 && !bVar22) == bVar6;\n        if (bVar6) {\nLAB_001ba680:\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) goto LAB_001ba6e0;\n        }\n        else {\n          lVar12 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar17 = (byte *)name;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar20 && !bVar6) == bVar20;\n          if (bVar6) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar22 = false;\n          lVar12 = 7;\n          pbVar15 = (byte *)name;\n          pbVar17 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar20 = false;\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;\n        }\n        __node_gen._M_h = (__hashtable_alloc *)&ctors_sections_in_init_array;\n        name_key = (Key)object;\n        local_50 = shndx;\n        std::\n        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);\n        cVar13 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001ba52a;\n      }\n    }" if (parenthesized_expression "(cVar13 == '\0')" ( (binary_expression "cVar13 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001ba63e:\n      uVar1 = shdr->p_->sh_size;\n      bVar6 = uVar1 < 4;\n      bVar22 = uVar1 == 4;\n      if (4 < uVar1) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar6 = *pbVar15 < *pbVar17;\n          bVar22 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar22);\n        bVar20 = false;\n        bVar6 = (!bVar6 && !bVar22) == bVar6;\n        if (bVar6) {\nLAB_001ba680:\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) goto LAB_001ba6e0;\n        }\n        else {\n          lVar12 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar17 = (byte *)name;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar20 && !bVar6) == bVar20;\n          if (bVar6) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar22 = false;\n          lVar12 = 7;\n          pbVar15 = (byte *)name;\n          pbVar17 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar20 = false;\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;\n        }\n        __node_gen._M_h = (__hashtable_alloc *)&ctors_sections_in_init_array;\n        name_key = (Key)object;\n        local_50 = shndx;\n        std::\n        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);\n        cVar13 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001ba52a;\n      }\n    }" { (labeled_statement "LAB_001ba63e:\n      uVar1 = shdr->p_->sh_size;" statement_identifier : (expression_statement "uVar1 = shdr->p_->sh_size;" (assignment_expression "uVar1 = shdr->p_->sh_size" identifier = (field_expression "shdr->p_->sh_size" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier)) ;)) (expression_statement "bVar6 = uVar1 < 4;" (assignment_expression "bVar6 = uVar1 < 4" identifier = (binary_expression "uVar1 < 4" identifier < number_literal)) ;) (expression_statement "bVar22 = uVar1 == 4;" (assignment_expression "bVar22 = uVar1 == 4" identifier = (binary_expression "uVar1 == 4" identifier == number_literal)) ;) (if_statement "if (4 < uVar1) {\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar6 = *pbVar15 < *pbVar17;\n          bVar22 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar22);\n        bVar20 = false;\n        bVar6 = (!bVar6 && !bVar22) == bVar6;\n        if (bVar6) {\nLAB_001ba680:\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) goto LAB_001ba6e0;\n        }\n        else {\n          lVar12 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar17 = (byte *)name;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar20 && !bVar6) == bVar20;\n          if (bVar6) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar22 = false;\n          lVar12 = 7;\n          pbVar15 = (byte *)name;\n          pbVar17 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar20 = false;\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;\n        }\n        __node_gen._M_h = (__hashtable_alloc *)&ctors_sections_in_init_array;\n        name_key = (Key)object;\n        local_50 = shndx;\n        std::\n        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);\n        cVar13 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001ba52a;\n      }" if (parenthesized_expression "(4 < uVar1)" ( (binary_expression "4 < uVar1" number_literal < identifier) )) (compound_statement "{\n        lVar12 = 7;\n        pbVar15 = (byte *)name;\n        pbVar17 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar6 = *pbVar15 < *pbVar17;\n          bVar22 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar22);\n        bVar20 = false;\n        bVar6 = (!bVar6 && !bVar22) == bVar6;\n        if (bVar6) {\nLAB_001ba680:\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) goto LAB_001ba6e0;\n        }\n        else {\n          lVar12 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar17 = (byte *)name;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar20 && !bVar6) == bVar20;\n          if (bVar6) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar22 = false;\n          lVar12 = 7;\n          pbVar15 = (byte *)name;\n          pbVar17 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar20 = false;\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;\n        }\n        __node_gen._M_h = (__hashtable_alloc *)&ctors_sections_in_init_array;\n        name_key = (Key)object;\n        local_50 = shndx;\n        std::\n        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);\n        cVar13 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001ba52a;\n      }" { (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)name;" (assignment_expression "pbVar15 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar17 = (byte *)".ctors";" (assignment_expression "pbVar17 = (byte *)".ctors"" identifier = (cast_expression "(byte *)".ctors"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors"" " string_content "))) ;) (do_statement "do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar6 = *pbVar15 < *pbVar17;\n          bVar22 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        } while (bVar22);" do (compound_statement "{\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar6 = *pbVar15 < *pbVar17;\n          bVar22 = *pbVar15 == *pbVar17;\n          pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n          pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n        }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar6 = *pbVar15 < *pbVar17;" (assignment_expression "bVar6 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar22 = *pbVar15 == *pbVar17;" (assignment_expression "bVar22 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar17 + (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 )) ;) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar6 = (!bVar6 && !bVar22) == bVar6;" (assignment_expression "bVar6 = (!bVar6 && !bVar22) == bVar6" identifier = (binary_expression "(!bVar6 && !bVar22) == bVar6" (parenthesized_expression "(!bVar6 && !bVar22)" ( (binary_expression "!bVar6 && !bVar22" (unary_expression "!bVar6" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar6) {\nLAB_001ba680:\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) goto LAB_001ba6e0;\n        }\n        else {\n          lVar12 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar17 = (byte *)name;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar20 && !bVar6) == bVar20;\n          if (bVar6) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar22 = false;\n          lVar12 = 7;\n          pbVar15 = (byte *)name;\n          pbVar17 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar20 = false;\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;\n        }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\nLAB_001ba680:\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) goto LAB_001ba6e0;\n        }" { (labeled_statement "LAB_001ba680:\n          bVar22 = false;" statement_identifier : (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;)) (expression_statement "lVar12 = 0xc;" (assignment_expression "lVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)this_00->name_;" (assignment_expression "pbVar15 = (byte *)this_00->name_" identifier = (cast_expression "(byte *)this_00->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_00->name_" identifier -> field_identifier))) ;) (expression_statement "pbVar17 = (byte *)".init_array";" (assignment_expression "pbVar17 = (byte *)".init_array"" identifier = (cast_expression "(byte *)".init_array"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".init_array"" " string_content "))) ;) (do_statement "do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);" do (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar15 < *pbVar17;" (assignment_expression "bVar22 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar6 = *pbVar15 == *pbVar17;" (assignment_expression "bVar6 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar17 + (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 "(bVar6)" ( identifier )) ;) (expression_statement "bVar6 = (!bVar22 && !bVar6) == bVar22;" (assignment_expression "bVar6 = (!bVar22 && !bVar6) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar6) == bVar22" (parenthesized_expression "(!bVar22 && !bVar6)" ( (binary_expression "!bVar22 && !bVar6" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar6" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar6) goto LAB_001ba6e0;" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (goto_statement "goto LAB_001ba6e0;" goto statement_identifier ;)) }) (else_clause "else {\n          lVar12 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar17 = (byte *)name;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar20 && !bVar6) == bVar20;\n          if (bVar6) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar22 = false;\n          lVar12 = 7;\n          pbVar15 = (byte *)name;\n          pbVar17 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar20 = false;\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;\n        }" else (compound_statement "{\n          lVar12 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar17 = (byte *)name;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar6 = (!bVar20 && !bVar6) == bVar20;\n          if (bVar6) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar22 = false;\n          lVar12 = 7;\n          pbVar15 = (byte *)name;\n          pbVar17 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          bVar20 = false;\n          bVar6 = (!bVar22 && !bVar6) == bVar22;\n          if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }\n          bVar22 = false;\n          lVar12 = 0xc;\n          pbVar15 = (byte *)this_00->name_;\n          pbVar17 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);\n          if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;\n        }" { (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".ctors.";" (assignment_expression "pbVar15 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar17 = (byte *)name;" (assignment_expression "pbVar17 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);" do (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar20 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar15 < *pbVar17;" (assignment_expression "bVar20 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar6 = *pbVar15 == *pbVar17;" (assignment_expression "bVar6 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar17 + (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 "(bVar6)" ( identifier )) ;) (expression_statement "bVar6 = (!bVar20 && !bVar6) == bVar20;" (assignment_expression "bVar6 = (!bVar20 && !bVar6) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar6) == bVar20" (parenthesized_expression "(!bVar20 && !bVar6)" ( (binary_expression "!bVar20 && !bVar6" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar6" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar6) goto LAB_001ba680;" if (parenthesized_expression "(bVar6)" ( identifier )) (goto_statement "goto LAB_001ba680;" goto statement_identifier ;)) (labeled_statement "LAB_001ba6e0:\n          bVar22 = false;" statement_identifier : (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;)) (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)name;" (assignment_expression "pbVar15 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar17 = (byte *)".dtors";" (assignment_expression "pbVar17 = (byte *)".dtors"" identifier = (cast_expression "(byte *)".dtors"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors"" " string_content "))) ;) (do_statement "do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);" do (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar15 < *pbVar17;" (assignment_expression "bVar22 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar6 = *pbVar15 == *pbVar17;" (assignment_expression "bVar6 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar17 + (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 "(bVar6)" ( identifier )) ;) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar6 = (!bVar22 && !bVar6) == bVar22;" (assignment_expression "bVar6 = (!bVar22 && !bVar6) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar6) == bVar22" (parenthesized_expression "(!bVar22 && !bVar6)" ( (binary_expression "!bVar22 && !bVar6" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar6" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar6) {\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (compound_statement "{\n            lVar12 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar17 = (byte *)name;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);\n            bVar6 = (!bVar20 && !bVar6) == bVar20;\n            if (!bVar6) goto LAB_001ba528;\n          }" { (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".dtors.";" (assignment_expression "pbVar15 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar17 = (byte *)name;" (assignment_expression "pbVar17 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            } while (bVar6);" do (compound_statement "{\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar20 = *pbVar15 < *pbVar17;\n              bVar6 = *pbVar15 == *pbVar17;\n              pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n              pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n            }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar15 < *pbVar17;" (assignment_expression "bVar20 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar6 = *pbVar15 == *pbVar17;" (assignment_expression "bVar6 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar17 + (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 "(bVar6)" ( identifier )) ;) (expression_statement "bVar6 = (!bVar20 && !bVar6) == bVar20;" (assignment_expression "bVar6 = (!bVar20 && !bVar6) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar6) == bVar20" (parenthesized_expression "(!bVar20 && !bVar6)" ( (binary_expression "!bVar20 && !bVar6" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar6" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar6) goto LAB_001ba528;" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (goto_statement "goto LAB_001ba528;" goto statement_identifier ;)) })) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "lVar12 = 0xc;" (assignment_expression "lVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)this_00->name_;" (assignment_expression "pbVar15 = (byte *)this_00->name_" identifier = (cast_expression "(byte *)this_00->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_00->name_" identifier -> field_identifier))) ;) (expression_statement "pbVar17 = (byte *)".fini_array";" (assignment_expression "pbVar17 = (byte *)".fini_array"" identifier = (cast_expression "(byte *)".fini_array"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".fini_array"" " string_content "))) ;) (do_statement "do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          } while (bVar6);" do (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar22 = *pbVar15 < *pbVar17;\n            bVar6 = *pbVar15 == *pbVar17;\n            pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;\n            pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;\n          }" { (if_statement "if (lVar12 == 0) break;" if (parenthesized_expression "(lVar12 == 0)" ( (binary_expression "lVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" identifier = (binary_expression "lVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar15 < *pbVar17;" (assignment_expression "bVar22 = *pbVar15 < *pbVar17" identifier = (binary_expression "*pbVar15 < *pbVar17" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "bVar6 = *pbVar15 == *pbVar17;" (assignment_expression "bVar6 = *pbVar15 == *pbVar17" identifier = (binary_expression "*pbVar15 == *pbVar17" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar17" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar15 + (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 "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar23 * -2 + 1" (binary_expression "pbVar17 + (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 "(bVar6)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar6) != bVar22) goto LAB_001ba528;" if (parenthesized_expression "((!bVar22 && !bVar6) != bVar22)" ( (binary_expression "(!bVar22 && !bVar6) != bVar22" (parenthesized_expression "(!bVar22 && !bVar6)" ( (binary_expression "!bVar22 && !bVar6" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar6" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001ba528;" goto statement_identifier ;)) }))) (expression_statement "__node_gen._M_h = (__hashtable_alloc *)&ctors_sections_in_init_array;" (assignment_expression "__node_gen._M_h = (__hashtable_alloc *)&ctors_sections_in_init_array" (field_expression "__node_gen._M_h" identifier . field_identifier) = (cast_expression "(__hashtable_alloc *)&ctors_sections_in_init_array" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ctors_sections_in_init_array" & identifier))) ;) (expression_statement "name_key = (Key)object;" (assignment_expression "name_key = (Key)object" identifier = (cast_expression "(Key)object" ( (type_descriptor "Key" type_identifier) ) identifier)) ;) (expression_statement "local_50 = shndx;" (assignment_expression "local_50 = shndx" identifier = identifier) ;) (ERROR "std::\n        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::" (comma_expression "std::\n        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n        _Hashtable<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hashtable<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>,_std" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Relobj*,_unsigned_int>_>,_std" (binary_expression "Relobj*,_unsigned_int>_" (binary_expression "Relobj*,_unsigned_int" identifier * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold" identifier (ERROR "::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , (binary_expression "_unsigned_int>_" identifier > identifier) >) , identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);" statement_identifier (ERROR "::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : (comma_expression "__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std::pair<gold::Relobj*,_unsigned_int>" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n        ::\n        _M_insert<std" identifier , (binary_expression "_true>_>\n        ::\n        _M_insert<std" (binary_expression "_true>_>\n        ::\n        _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , identifier) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1);" (comma_expression "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1)" identifier (ERROR "::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : identifier * , identifier >) , (binary_expression "_true>_>_>_>\n                  ((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1)" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "((_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1)" ( (comma_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array,&name_key,&__node_gen,1" (binary_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)&ctors_sections_in_init_array" (parenthesized_expression "(_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                    *)" ( (ERROR "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std::__detail::_Identity,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std::allocator<std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std::pair<gold" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int>,_std" (binary_expression "_Hashtable<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "_Hashtable<std::pair<gold" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > identifier) > (ERROR "," ,) identifier) (ERROR "::__detail::_Identity" : : identifier : : identifier) , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) , (binary_expression "_unsigned_int>_>,_gold" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Section_id_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                    *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                    *" identifier , (binary_expression "_true>_>\n                    *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & identifier) , (comma_expression "&name_key,&__node_gen,1" (pointer_expression "&name_key" & identifier) , (comma_expression "&__node_gen,1" (pointer_expression "&__node_gen" & identifier) , number_literal))) )))) ;))))) (expression_statement "cVar13 = (this->script_options_->script_sections_).saw_sections_clause_;" (assignment_expression "cVar13 = (this->script_options_->script_sections_).saw_sections_clause_" identifier = (field_expression "(this->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_001ba52a;" goto statement_identifier ;) })) }))) })) (labeled_statement "LAB_001ba528:\n  cVar13 = false;" statement_identifier : (expression_statement "cVar13 = false;" (assignment_expression "cVar13 = false" identifier = false) ;)) (labeled_statement "LAB_001ba52a:\n  uVar5 = this_00->flags_;" statement_identifier : (expression_statement "uVar5 = this_00->flags_;" (assignment_expression "uVar5 = this_00->flags_" identifier = (field_expression "this_00->flags_" identifier -> field_identifier)) ;)) (expression_statement "oVar11 = Output_section::add_input_section<32,_false>\n                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar13);" (comma_expression "oVar11 = Output_section::add_input_section<32,_false>\n                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar13)" (binary_expression "oVar11 = Output_section::add_input_section<32" (assignment_expression "oVar11 = Output_section" identifier = identifier) (ERROR "::add_input_section" : : identifier) < number_literal) , (binary_expression "_false>\n                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar13)" identifier > (parenthesized_expression "(this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar13)" ( (comma_expression "this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar13" identifier , (comma_expression "this,object,shndx,name,shdr,reloc_shndx,(bool)cVar13" identifier , (comma_expression "object,shndx,name,shdr,reloc_shndx,(bool)cVar13" identifier , (comma_expression "shndx,name,shdr,reloc_shndx,(bool)cVar13" identifier , (comma_expression "name,shdr,reloc_shndx,(bool)cVar13" identifier , (comma_expression "shdr,reloc_shndx,(bool)cVar13" identifier , (comma_expression "reloc_shndx,(bool)cVar13" identifier , (cast_expression "(bool)cVar13" ( (type_descriptor "bool" primitive_type) ) identifier)))))))) )))) ;) (expression_statement "*off = oVar11;" (assignment_expression "*off = oVar11" (pointer_expression "*off" * identifier) = identifier) ;) (if_statement "if (((uVar5 & 2) != 0) && (((uint)uVar5 & 5) != ((uint)this_00->flags_ & 5))) {\n    OVar7 = default_section_order(this,this_00,false);\n    this_00->order_ = OVar7;\n  }" if (parenthesized_expression "(((uVar5 & 2) != 0) && (((uint)uVar5 & 5) != ((uint)this_00->flags_ & 5)))" ( (binary_expression "((uVar5 & 2) != 0) && (((uint)uVar5 & 5) != ((uint)this_00->flags_ & 5))" (parenthesized_expression "((uVar5 & 2) != 0)" ( (binary_expression "(uVar5 & 2) != 0" (parenthesized_expression "(uVar5 & 2)" ( (binary_expression "uVar5 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uint)uVar5 & 5) != ((uint)this_00->flags_ & 5))" ( (binary_expression "((uint)uVar5 & 5) != ((uint)this_00->flags_ & 5)" (parenthesized_expression "((uint)uVar5 & 5)" ( (binary_expression "(uint)uVar5 & 5" (cast_expression "(uint)uVar5" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != (parenthesized_expression "((uint)this_00->flags_ & 5)" ( (binary_expression "(uint)this_00->flags_ & 5" (cast_expression "(uint)this_00->flags_" ( (type_descriptor "uint" type_identifier) ) (field_expression "this_00->flags_" identifier -> field_identifier)) & number_literal) ))) ))) )) (compound_statement "{\n    OVar7 = default_section_order(this,this_00,false);\n    this_00->order_ = OVar7;\n  }" { (expression_statement "OVar7 = default_section_order(this,this_00,false);" (assignment_expression "OVar7 = default_section_order(this,this_00,false)" identifier = (call_expression "default_section_order(this,this_00,false)" identifier (argument_list "(this,this_00,false)" ( identifier , identifier , false )))) ;) (expression_statement "this_00->order_ = OVar7;" (assignment_expression "this_00->order_ = OVar7" (field_expression "this_00->order_" identifier -> field_identifier) = identifier) ;) })) (expression_statement "this->have_added_input_section_ = true;" (assignment_expression "this->have_added_input_section_ = true" (field_expression "this->have_added_input_section_" identifier -> field_identifier) = true) ;) (return_statement "return this_00;" return identifier ;) }))
(translation_unit "long FUN_001ba1a0(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,\n                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)\n\n{\n  long lVar1;\n  ulong uVar2;\n  char cVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char *__s1;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  *param_9 = 0;\n  cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);\n  if (cVar3 == '\0') {\n    return 0;\n  }\n  lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar7 == 0) goto LAB_001ba729;\n  if ((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }\n  else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }\nLAB_001ba3f8:\n  lVar9 = *(long *)(param_1 + 8);\n  cVar3 = *(char *)(lVar9 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar3 != '\0') {\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (lVar1 == 0) {\nLAB_001ba729:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar15 = false;\n  bVar18 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar18) goto LAB_001ba620;\n  lVar8 = 7;\n  pbVar10 = (byte *)".ctors.";\n  pbVar11 = param_4;\n  do {\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }\nLAB_001ba528:\n  cVar3 = '\0';\nLAB_001ba52a:\n  uVar2 = *(ulong *)(lVar7 + 0x70);\n  uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);\n  *param_9 = uVar6;\n  if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar7;\n}\n\n" (function_definition "long FUN_001ba1a0(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,\n                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)\n\n{\n  long lVar1;\n  ulong uVar2;\n  char cVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char *__s1;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  *param_9 = 0;\n  cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);\n  if (cVar3 == '\0') {\n    return 0;\n  }\n  lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar7 == 0) goto LAB_001ba729;\n  if ((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }\n  else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }\nLAB_001ba3f8:\n  lVar9 = *(long *)(param_1 + 8);\n  cVar3 = *(char *)(lVar9 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar3 != '\0') {\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (lVar1 == 0) {\nLAB_001ba729:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar15 = false;\n  bVar18 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar18) goto LAB_001ba620;\n  lVar8 = 7;\n  pbVar10 = (byte *)".ctors.";\n  pbVar11 = param_4;\n  do {\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }\nLAB_001ba528:\n  cVar3 = '\0';\nLAB_001ba52a:\n  uVar2 = *(ulong *)(lVar7 + 0x70);\n  uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);\n  *param_9 = uVar6;\n  if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar7;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_001ba1a0(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,\n                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)" identifier (parameter_list "(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,\n                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "byte *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "long *param_5" (sized_type_specifier "long" long) (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined8 param_8" type_identifier identifier) , (parameter_declaration "undefined8 *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  char cVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char *__s1;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  *param_9 = 0;\n  cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);\n  if (cVar3 == '\0') {\n    return 0;\n  }\n  lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar7 == 0) goto LAB_001ba729;\n  if ((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }\n  else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }\nLAB_001ba3f8:\n  lVar9 = *(long *)(param_1 + 8);\n  cVar3 = *(char *)(lVar9 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar3 != '\0') {\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (lVar1 == 0) {\nLAB_001ba729:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar15 = false;\n  bVar18 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar18) goto LAB_001ba620;\n  lVar8 = 7;\n  pbVar10 = (byte *)".ctors.";\n  pbVar11 = param_4;\n  do {\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }\nLAB_001ba528:\n  cVar3 = '\0';\nLAB_001ba52a:\n  uVar2 = *(ulong *)(lVar7 + 0x70);\n  uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);\n  *param_9 = uVar6;\n  if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar7;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined1 uVar14;" type_identifier identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "undefined1 uVar17;" type_identifier identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "undefined **local_80;" type_identifier (pointer_declarator "**local_80" * (pointer_declarator "*local_80" * identifier)) ;) (declaration "undefined *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "byte *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "byte local_48 [24];" type_identifier (array_declarator "local_48 [24]" identifier [ number_literal ]) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);" (assignment_expression "cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5)" identifier = (call_expression "FUN_001b3220(param_1,param_2,param_4,param_5)" identifier (argument_list "(param_1,param_2,param_4,param_5)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (cVar3 == '\0') {\n    return 0;\n  }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);" (assignment_expression "lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10)" identifier = (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) ))))) ;) (if_statement "if (lVar7 == 0) goto LAB_001ba729;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001ba729;" goto statement_identifier ;)) (if_statement "if ((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }\n  else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }" if (parenthesized_expression "((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0))" ( (binary_expression "(*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)" (parenthesized_expression "(*(char *)(lVar7 + 0x5051) == '\0')" ( (binary_expression "*(char *)(lVar7 + 0x5051) == '\0'" (pointer_expression "*(char *)(lVar7 + 0x5051)" * (cast_expression "(char *)(lVar7 + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x5051)" ( (binary_expression "lVar7 + 0x5051" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)" ( (comma_expression "uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0" (assignment_expression "uVar12 = *(uint *)(*param_5 + 8)" identifier = (pointer_expression "*(uint *)(*param_5 + 8)" * (cast_expression "(uint *)(*param_5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) , (binary_expression "(uVar12 & 0x200) == 0" (parenthesized_expression "(uVar12 & 0x200)" ( (binary_expression "uVar12 & 0x200" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';" (assignment_expression "uVar17 = *(char *)(lVar7 + 0x8f19) == '\0'" identifier = (binary_expression "*(char *)(lVar7 + 0x8f19) == '\0'" (pointer_expression "*(char *)(lVar7 + 0x8f19)" * (cast_expression "(char *)(lVar7 + 0x8f19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x8f19)" ( (binary_expression "lVar7 + 0x8f19" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }" if (parenthesized_expression "(!(bool)uVar17)" ( (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }" { (expression_statement "(**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);" (call_expression "(**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3)" (parenthesized_expression "(**(code **)(*(long *)param_2 + 0x80))" ( (pointer_expression "**(code **)(*(long *)param_2 + 0x80)" * (pointer_expression "*(code **)(*(long *)param_2 + 0x80)" * (cast_expression "(code **)(*(long *)param_2 + 0x80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)param_2 + 0x80)" ( (binary_expression "*(long *)param_2 + 0x80" (pointer_expression "*(long *)param_2" * (cast_expression "(long *)param_2" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(&local_58,param_2,param_3)" ( (pointer_expression "&local_58" & identifier) , identifier , identifier ))) ;) (expression_statement "lVar7 = 0xe;" (assignment_expression "lVar7 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".text.unlikely";" (assignment_expression "pbVar10 = (byte *)".text.unlikely"" identifier = (cast_expression "(byte *)".text.unlikely"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".text.unlikely"" " string_content "))) ;) (expression_statement "pbVar11 = local_58;" (assignment_expression "pbVar11 = local_58" identifier = identifier) ;) (do_statement "do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);" do (compound_statement "{\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      }" { (if_statement "if (lVar7 == 0) break;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar14 = *pbVar10 < *pbVar11;" (assignment_expression "uVar14 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "uVar17 = *pbVar10 == *pbVar11;" (assignment_expression "uVar17 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }" if (parenthesized_expression "((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14)" ( (binary_expression "(!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14" (parenthesized_expression "(!(bool)uVar14 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar14 && !(bool)uVar17" (unary_expression "!(bool)uVar14" ! (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar14" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }" { (if_statement "if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n          FUN_002dac60(local_58);\n        }" { (expression_statement "FUN_002dac60(local_58);" (call_expression "FUN_002dac60(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;" 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_001ba803;" goto statement_identifier ;)) (expression_statement "uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;" (assignment_expression "uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f" identifier = (binary_expression "*(uint *)(*param_5 + 8) & 0xfffff50f" (pointer_expression "*(uint *)(*param_5 + 8)" * (cast_expression "(uint *)(*param_5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) )))) & number_literal)) ;) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051" (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          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }" { (expression_statement "uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;" (assignment_expression "uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f" identifier = (binary_expression "*(uint *)(*param_5 + 8) & 0xfffff58f" (pointer_expression "*(uint *)(*param_5 + 8)" * (cast_expression "(uint *)(*param_5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) )))) & number_literal)) ;) })) (expression_statement "uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);" (assignment_expression "uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58)" identifier = (call_expression "FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58)" identifier (argument_list "(param_1 + 0x10,".text.unlikely",1,&local_58)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) , (string_literal "".text.unlikely"" " string_content ") , number_literal , (pointer_expression "&local_58" & identifier) )))) ;) (expression_statement "lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);" (assignment_expression "lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0)" identifier = (call_expression "FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0)" identifier (argument_list "(param_1,uVar6,local_58,param_6,uVar12,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "*(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;" (assignment_expression "*(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar7 + 0xca)" * (cast_expression "(byte *)(lVar7 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xca)" ( (binary_expression "lVar7 + 0xca" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar7 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar7 + 0xca)" * (cast_expression "(byte *)(lVar7 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xca)" ( (binary_expression "lVar7 + 0xca" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_001ba3f8;" goto statement_identifier ;) })) (if_statement "if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n        FUN_002dac60(local_58);\n      }" { (expression_statement "FUN_002dac60(local_58);" (call_expression "FUN_002dac60(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) })) (expression_statement "local_58 = param_2;" (assignment_expression "local_58 = param_2" identifier = identifier) ;) (expression_statement "local_50 = param_3;" (assignment_expression "local_50 = param_3" identifier = identifier) ;) (expression_statement "lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);" (assignment_expression "lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58)" identifier = (call_expression "FUN_001b4c30(param_1 + 0x3e0,&local_58)" identifier (argument_list "(param_1 + 0x3e0,&local_58)" ( (binary_expression "param_1 + 0x3e0" identifier + number_literal) , (pointer_expression "&local_58" & identifier) )))) ;) (if_statement "if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }" if (parenthesized_expression "(lVar9 == param_1 + 1000)" ( (binary_expression "lVar9 == param_1 + 1000" identifier == (binary_expression "param_1 + 1000" identifier + number_literal)) )) (compound_statement "{\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);" (assignment_expression "lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1)" identifier = (call_expression "FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1)" identifier (argument_list "(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1)" ( identifier , identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(*param_5 + 8)" * (cast_expression "(undefined4 *)(*param_5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) )))) , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (if_statement "if (lVar7 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }" else (compound_statement "{\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }" { (expression_statement "uVar12 = *(uint *)(*param_5 + 8);" (assignment_expression "uVar12 = *(uint *)(*param_5 + 8)" identifier = (pointer_expression "*(uint *)(*param_5 + 8)" * (cast_expression "(uint *)(*param_5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\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_001ba803:\n                    \n        FUN_001a4340();\n      }" { (labeled_statement "LAB_001ba803:\n                    \n        FUN_001a4340();" statement_identifier : (expression_statement "FUN_001a4340();" (call_expression "FUN_001a4340()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "uVar13 = uVar12 & 0xfffff50f;" (assignment_expression "uVar13 = uVar12 & 0xfffff50f" identifier = (binary_expression "uVar12 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051" (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        uVar13 = uVar12 & 0xfffff58f;\n      }" { (expression_statement "uVar13 = uVar12 & 0xfffff58f;" (assignment_expression "uVar13 = uVar12 & 0xfffff58f" identifier = (binary_expression "uVar12 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);" (assignment_expression "uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58)" identifier = (call_expression "FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58)" identifier (argument_list "(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) , (pointer_expression "**(undefined8 **)(lVar9 + 0x30)" * (pointer_expression "*(undefined8 **)(lVar9 + 0x30)" * (cast_expression "(undefined8 **)(lVar9 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) ))))) , number_literal , (pointer_expression "&local_58" & identifier) )))) ;) (expression_statement "lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);" (assignment_expression "lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0)" identifier = (call_expression "FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0)" identifier (argument_list "(param_1,uVar6,local_58,param_6,uVar13,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }" if (parenthesized_expression "(-1 < (char)*(byte *)(lVar7 + 0xca))" ( (binary_expression "-1 < (char)*(byte *)(lVar7 + 0xca)" number_literal < (cast_expression "(char)*(byte *)(lVar7 + 0xca)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(lVar7 + 0xca)" * (cast_expression "(byte *)(lVar7 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xca)" ( (binary_expression "lVar7 + 0xca" identifier + number_literal) )))))) )) (compound_statement "{\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }" { (expression_statement "*(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;" (assignment_expression "*(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar7 + 0xca)" * (cast_expression "(byte *)(lVar7 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xca)" ( (binary_expression "lVar7 + 0xca" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar7 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar7 + 0xca)" * (cast_expression "(byte *)(lVar7 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xca)" ( (binary_expression "lVar7 + 0xca" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "lVar9 = *(long *)(lVar9 + 0x30);" (assignment_expression "lVar9 = *(long *)(lVar9 + 0x30)" identifier = (pointer_expression "*(long *)(lVar9 + 0x30)" * (cast_expression "(long *)(lVar9 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x30)" ( (binary_expression "lVar9 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);" (assignment_expression "*(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8)" (pointer_expression "*(undefined8 *)(lVar7 + 0xd8)" * (cast_expression "(undefined8 *)(lVar7 + 0xd8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xd8)" ( (binary_expression "lVar7 + 0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar9 + 8)" * (cast_expression "(undefined8 *)(lVar9 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 8)" ( (binary_expression "lVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);" (assignment_expression "*(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10)" (pointer_expression "*(undefined8 *)(lVar7 + 0xe0)" * (cast_expression "(undefined8 *)(lVar7 + 0xe0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xe0)" ( (binary_expression "lVar7 + 0xe0" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar9 + 0x10)" * (cast_expression "(undefined8 *)(lVar9 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) ;) })) }))) }) (else_clause "else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }" else (compound_statement "{\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }" { (expression_statement "param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);" (assignment_expression "param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0)" identifier = (cast_expression "(byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0026e690(param_1 + 0x10,param_4,1,0)" identifier (argument_list "(param_1 + 0x10,param_4,1,0)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) , identifier , number_literal , number_literal ))))) ;) (expression_statement "lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);" (assignment_expression "lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0)" identifier = (call_expression "FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0)" identifier (argument_list "(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0)" ( identifier , identifier , identifier , (binary_expression "uVar12 & 0xfffff7ff" identifier & number_literal) , number_literal , number_literal )))) ;) }))) (labeled_statement "LAB_001ba3f8:\n  lVar9 = *(long *)(param_1 + 8);" statement_identifier : (expression_statement "lVar9 = *(long *)(param_1 + 8);" (assignment_expression "lVar9 = *(long *)(param_1 + 8)" identifier = (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;)) (expression_statement "cVar3 = *(char *)(lVar9 + 0x148);" (assignment_expression "cVar3 = *(char *)(lVar9 + 0x148)" identifier = (pointer_expression "*(char *)(lVar9 + 0x148)" * (cast_expression "(char *)(lVar9 + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x148)" ( (binary_expression "lVar9 + 0x148" identifier + number_literal) ))))) ;) (expression_statement "lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);" (assignment_expression "lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10)" identifier = (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) ))))) ;) (if_statement "if (cVar3 != '\0') {\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }" { (if_statement "if (lVar1 == 0) goto LAB_001ba729;" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001ba729;" goto statement_identifier ;)) (goto_statement "goto LAB_001ba52a;" goto statement_identifier ;) })) (if_statement "if (lVar1 == 0) {\nLAB_001ba729:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001ba729:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_001ba729:\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 ") ))) ;)) })) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar18 = *(char *)(lVar1 + 0x5051) == '\0';" (assignment_expression "bVar18 = *(char *)(lVar1 + 0x5051) == '\0'" identifier = (binary_expression "*(char *)(lVar1 + 0x5051) == '\0'" (pointer_expression "*(char *)(lVar1 + 0x5051)" * (cast_expression "(char *)(lVar1 + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x5051)" ( (binary_expression "lVar1 + 0x5051" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar18) goto LAB_001ba620;" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (goto_statement "goto LAB_001ba620;" goto statement_identifier ;)) (expression_statement "lVar8 = 7;" (assignment_expression "lVar8 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".ctors.";" (assignment_expression "pbVar10 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" identifier = identifier) ;) (do_statement "do {\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  } while (bVar18);" do (compound_statement "{\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar10 < *pbVar11;" (assignment_expression "bVar15 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar18 = *pbVar10 == *pbVar11;" (assignment_expression "bVar18 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }" { (labeled_statement "LAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;" statement_identifier : (expression_statement "*(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;" (assignment_expression "*(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar7 + 0xc9)" * (cast_expression "(byte *)(lVar7 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xc9)" ( (binary_expression "lVar7 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar7 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar7 + 0xc9)" * (cast_expression "(byte *)(lVar7 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xc9)" ( (binary_expression "lVar7 + 0xc9" identifier + number_literal) )))) | number_literal)) ;)) (expression_statement "cVar3 = *(char *)(lVar9 + 0x148);" (assignment_expression "cVar3 = *(char *)(lVar9 + 0x148)" identifier = (pointer_expression "*(char *)(lVar9 + 0x148)" * (cast_expression "(char *)(lVar9 + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x148)" ( (binary_expression "lVar9 + 0x148" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }" if (parenthesized_expression "(*(char *)(lVar1 + 0x62b9) == '\0')" ( (binary_expression "*(char *)(lVar1 + 0x62b9) == '\0'" (pointer_expression "*(char *)(lVar1 + 0x62b9)" * (cast_expression "(char *)(lVar1 + 0x62b9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x62b9)" ( (binary_expression "lVar1 + 0x62b9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }" { (labeled_statement "LAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;" statement_identifier : (if_statement "if (cVar3 != '\0') goto LAB_001ba52a;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ba52a;" goto statement_identifier ;))) (goto_statement "goto LAB_001ba62e;" goto statement_identifier ;) })) (if_statement "if (cVar3 != '\0') goto LAB_001ba52a;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ba52a;" goto statement_identifier ;)) (labeled_statement "LAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);" statement_identifier : (expression_statement "cVar3 = *(char *)(lVar1 + 0x5051);" (assignment_expression "cVar3 = *(char *)(lVar1 + 0x5051)" identifier = (pointer_expression "*(char *)(lVar1 + 0x5051)" * (cast_expression "(char *)(lVar1 + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x5051)" ( (binary_expression "lVar1 + 0x5051" identifier + number_literal) ))))) ;)) (if_statement "if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;" if (parenthesized_expression "(*(char *)(param_1 + 0x371) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x371) != '\0'" (pointer_expression "*(char *)(param_1 + 0x371)" * (cast_expression "(char *)(param_1 + 0x371)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x371)" ( (binary_expression "param_1 + 0x371" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ba636;" goto statement_identifier ;)) (if_statement "if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }" { (expression_statement "__n = 0xe;" (assignment_expression "__n = 0xe" identifier = number_literal) ;) (expression_statement "__s1 = ".text.unlikely";" (assignment_expression "__s1 = ".text.unlikely"" identifier = (string_literal "".text.unlikely"" " string_content ")) ;) (expression_statement "local_80 = &PTR_s__text_unlikely_00427ee0;" (assignment_expression "local_80 = &PTR_s__text_unlikely_00427ee0" identifier = (pointer_expression "&PTR_s__text_unlikely_00427ee0" & identifier)) ;) (while_statement "while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }" while (parenthesized_expression "(iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0)" ( (comma_expression "iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0" (assignment_expression "iVar5 = strncmp(__s1,(char *)param_4,__n)" identifier = (call_expression "strncmp(__s1,(char *)param_4,__n)" identifier (argument_list "(__s1,(char *)param_4,__n)" ( identifier , (cast_expression "(char *)param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) )) (compound_statement "{\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }" { (expression_statement "local_80 = local_80 + 1;" (assignment_expression "local_80 = local_80 + 1" identifier = (binary_expression "local_80 + 1" identifier + number_literal)) ;) (if_statement "if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;" if (parenthesized_expression "(local_80 == &PTR_s_aranges_00427f00)" ( (binary_expression "local_80 == &PTR_s_aranges_00427f00" identifier == (pointer_expression "&PTR_s_aranges_00427f00" & identifier)) )) (goto_statement "goto LAB_001ba63e;" goto statement_identifier ;)) (expression_statement "__s1 = *local_80;" (assignment_expression "__s1 = *local_80" identifier = (pointer_expression "*local_80" * identifier)) ;) (expression_statement "__n = strlen(__s1);" (assignment_expression "__n = strlen(__s1)" identifier = (call_expression "strlen(__s1)" identifier (argument_list "(__s1)" ( identifier )))) ;) })) (expression_statement "*(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;" (assignment_expression "*(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar7 + 0xc9)" * (cast_expression "(byte *)(lVar7 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xc9)" ( (binary_expression "lVar7 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar7 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar7 + 0xc9)" * (cast_expression "(byte *)(lVar7 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xc9)" ( (binary_expression "lVar7 + 0xc9" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "cVar3 = *(char *)(lVar9 + 0x148);" (assignment_expression "cVar3 = *(char *)(lVar9 + 0x148)" identifier = (pointer_expression "*(char *)(lVar9 + 0x148)" * (cast_expression "(char *)(lVar9 + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x148)" ( (binary_expression "lVar9 + 0x148" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001ba75b;" goto statement_identifier ;) })) }) (else_clause "else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }" else (compound_statement "{\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }" { (expression_statement "lVar8 = 7;" (assignment_expression "lVar8 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".dtors.";" (assignment_expression "pbVar10 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) goto LAB_001ba4e0;" if (parenthesized_expression "(bVar15)" ( identifier )) (goto_statement "goto LAB_001ba4e0;" goto statement_identifier ;)) (expression_statement "lVar8 = 0xc;" (assignment_expression "lVar8 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".init_array.";" (assignment_expression "pbVar10 = (byte *)".init_array."" identifier = (cast_expression "(byte *)".init_array."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".init_array."" " string_content "))) ;) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar10 < *pbVar11;" (assignment_expression "bVar18 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) goto LAB_001ba4e0;" if (parenthesized_expression "(bVar15)" ( identifier )) (goto_statement "goto LAB_001ba4e0;" goto statement_identifier ;)) (expression_statement "lVar8 = 0xc;" (assignment_expression "lVar8 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".fini_array.";" (assignment_expression "pbVar10 = (byte *)".fini_array."" identifier = (cast_expression "(byte *)".fini_array."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".fini_array."" " string_content "))) ;) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;" if (parenthesized_expression "((!bVar16 && !bVar15) == bVar16)" ( (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_001ba4e0;" goto statement_identifier ;)) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar18 = *(char *)(lVar1 + 0x1179) == '\0';" (assignment_expression "bVar18 = *(char *)(lVar1 + 0x1179) == '\0'" identifier = (binary_expression "*(char *)(lVar1 + 0x1179) == '\0'" (pointer_expression "*(char *)(lVar1 + 0x1179)" * (cast_expression "(char *)(lVar1 + 0x1179)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x1179)" ( (binary_expression "lVar1 + 0x1179" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }" { (expression_statement "lVar8 = 7;" (assignment_expression "lVar8 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = param_4;" (assignment_expression "pbVar10 = param_4" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".ctors";" (assignment_expression "pbVar11 = (byte *)".ctors"" identifier = (cast_expression "(byte *)".ctors"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors"" " string_content "))) ;) (do_statement "do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar10 < *pbVar11;" (assignment_expression "bVar15 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar18 = *pbVar10 == *pbVar11;" (assignment_expression "bVar18 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }" { (expression_statement "lVar8 = 7;" (assignment_expression "lVar8 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = param_4;" (assignment_expression "pbVar10 = param_4" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".dtors";" (assignment_expression "pbVar11 = (byte *)".dtors"" identifier = (cast_expression "(byte *)".dtors"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors"" " string_content "))) ;) (do_statement "do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);" do (compound_statement "{\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        }" { (if_statement "if (lVar8 == 0) break;" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" identifier = (binary_expression "lVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;" if (parenthesized_expression "((!bVar16 && !bVar15) != bVar16)" ( (binary_expression "(!bVar16 && !bVar15) != bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001ba620;" goto statement_identifier ;)) })) (goto_statement "goto LAB_001ba4e0;" goto statement_identifier ;) })) (labeled_statement "LAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;" statement_identifier : (if_statement "if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;" if (parenthesized_expression "(*(char *)(lVar1 + 0x62b9) != '\0')" ( (binary_expression "*(char *)(lVar1 + 0x62b9) != '\0'" (pointer_expression "*(char *)(lVar1 + 0x62b9)" * (cast_expression "(char *)(lVar1 + 0x62b9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x62b9)" ( (binary_expression "lVar1 + 0x62b9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ba504;" goto statement_identifier ;))) (labeled_statement "LAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);" statement_identifier : (expression_statement "cVar3 = *(char *)(lVar1 + 0x5051);" (assignment_expression "cVar3 = *(char *)(lVar1 + 0x5051)" identifier = (pointer_expression "*(char *)(lVar1 + 0x5051)" * (cast_expression "(char *)(lVar1 + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x5051)" ( (binary_expression "lVar1 + 0x5051" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }" statement_identifier : (if_statement "if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }" { (labeled_statement "LAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);" statement_identifier : (expression_statement "uVar12 = *(uint *)(*param_5 + 0x14);" (assignment_expression "uVar12 = *(uint *)(*param_5 + 0x14)" identifier = (pointer_expression "*(uint *)(*param_5 + 0x14)" * (cast_expression "(uint *)(*param_5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 0x14)" ( (binary_expression "*param_5 + 0x14" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;)) (expression_statement "bVar15 = uVar12 < 4;" (assignment_expression "bVar15 = uVar12 < 4" identifier = (binary_expression "uVar12 < 4" identifier < number_literal)) ;) (expression_statement "bVar18 = uVar12 == 4;" (assignment_expression "bVar18 = uVar12 == 4" identifier = (binary_expression "uVar12 == 4" identifier == number_literal)) ;) (if_statement "if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }" if (parenthesized_expression "(4 < uVar12)" ( (binary_expression "4 < uVar12" number_literal < identifier) )) (compound_statement "{\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }" { (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = param_4;" (assignment_expression "pbVar10 = param_4" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".ctors";" (assignment_expression "pbVar11 = (byte *)".ctors"" identifier = (cast_expression "(byte *)".ctors"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors"" " string_content "))) ;) (do_statement "do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);" do (compound_statement "{\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar10 < *pbVar11;" (assignment_expression "bVar15 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar18 = *pbVar10 == *pbVar11;" (assignment_expression "bVar18 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" ( (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }" { (labeled_statement "LAB_001ba680:\n          bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar9 = 0xc;" (assignment_expression "lVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar10 = *(byte **)(lVar7 + 0x28);" (assignment_expression "pbVar10 = *(byte **)(lVar7 + 0x28)" identifier = (pointer_expression "*(byte **)(lVar7 + 0x28)" * (cast_expression "(byte **)(lVar7 + 0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 0x28)" ( (binary_expression "lVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = (byte *)".init_array";" (assignment_expression "pbVar11 = (byte *)".init_array"" identifier = (cast_expression "(byte *)".init_array"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".init_array"" " string_content "))) ;) (do_statement "do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);" do (compound_statement "{\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar10 < *pbVar11;" (assignment_expression "bVar18 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) goto LAB_001ba6e0;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_001ba6e0;" goto statement_identifier ;)) }) (else_clause "else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }" else (compound_statement "{\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }" { (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".ctors.";" (assignment_expression "pbVar10 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" identifier = identifier) ;) (do_statement "do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);" do (compound_statement "{\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar15) goto LAB_001ba680;" if (parenthesized_expression "(bVar15)" ( identifier )) (goto_statement "goto LAB_001ba680;" goto statement_identifier ;)) (labeled_statement "LAB_001ba6e0:\n          bVar18 = false;" statement_identifier : (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;)) (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = param_4;" (assignment_expression "pbVar10 = param_4" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".dtors";" (assignment_expression "pbVar11 = (byte *)".dtors"" identifier = (cast_expression "(byte *)".dtors"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors"" " string_content "))) ;) (do_statement "do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);" do (compound_statement "{\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar10 < *pbVar11;" (assignment_expression "bVar18 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }" { (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)".dtors.";" (assignment_expression "pbVar10 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" identifier = identifier) ;) (do_statement "do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);" do (compound_statement "{\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) goto LAB_001ba528;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_001ba528;" goto statement_identifier ;)) })) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "lVar9 = 0xc;" (assignment_expression "lVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar10 = *(byte **)(lVar7 + 0x28);" (assignment_expression "pbVar10 = *(byte **)(lVar7 + 0x28)" identifier = (pointer_expression "*(byte **)(lVar7 + 0x28)" * (cast_expression "(byte **)(lVar7 + 0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 0x28)" ( (binary_expression "lVar7 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = (byte *)".fini_array";" (assignment_expression "pbVar11 = (byte *)".fini_array"" identifier = (cast_expression "(byte *)".fini_array"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".fini_array"" " string_content "))) ;) (do_statement "do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);" do (compound_statement "{\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar10 < *pbVar11;" (assignment_expression "bVar18 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;" if (parenthesized_expression "((!bVar18 && !bVar15) != bVar18)" ( (binary_expression "(!bVar18 && !bVar15) != bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" ( (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001ba528;" goto statement_identifier ;)) }))) (expression_statement "local_60 = &DAT_0043e980;" (assignment_expression "local_60 = &DAT_0043e980" identifier = (pointer_expression "&DAT_0043e980" & identifier)) ;) (expression_statement "local_58 = param_2;" (assignment_expression "local_58 = param_2" identifier = identifier) ;) (expression_statement "local_50 = param_3;" (assignment_expression "local_50 = param_3" identifier = identifier) ;) (expression_statement "FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);" (call_expression "FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1)" identifier (argument_list "(&DAT_0043e980,&local_58,&local_60,1)" ( (pointer_expression "&DAT_0043e980" & identifier) , (pointer_expression "&local_58" & identifier) , (pointer_expression "&local_60" & identifier) , number_literal ))) ;) (expression_statement "cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);" (assignment_expression "cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148)" identifier = (pointer_expression "*(char *)(*(long *)(param_1 + 8) + 0x148)" * (cast_expression "(char *)(*(long *)(param_1 + 8) + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x148)" ( (binary_expression "*(long *)(param_1 + 8) + 0x148" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_001ba52a;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_001ba528:\n  cVar3 = '\0';" statement_identifier : (expression_statement "cVar3 = '\0';" (assignment_expression "cVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (labeled_statement "LAB_001ba52a:\n  uVar2 = *(ulong *)(lVar7 + 0x70);" statement_identifier : (expression_statement "uVar2 = *(ulong *)(lVar7 + 0x70);" (assignment_expression "uVar2 = *(ulong *)(lVar7 + 0x70)" identifier = (pointer_expression "*(ulong *)(lVar7 + 0x70)" * (cast_expression "(ulong *)(lVar7 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x70)" ( (binary_expression "lVar7 + 0x70" identifier + number_literal) ))))) ;)) (expression_statement "uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);" (assignment_expression "uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3)" identifier = (call_expression "FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3)" identifier (argument_list "(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "*param_9 = uVar6;" (assignment_expression "*param_9 = uVar6" (pointer_expression "*param_9" * identifier) = identifier) ;) (if_statement "if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }" if (parenthesized_expression "(((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5)))" ( (binary_expression "((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))" (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))" ( (binary_expression "((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5)" (parenthesized_expression "((uint)uVar2 & 5)" ( (binary_expression "(uint)uVar2 & 5" (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != (parenthesized_expression "((uint)*(undefined8 *)(lVar7 + 0x70) & 5)" ( (binary_expression "(uint)*(undefined8 *)(lVar7 + 0x70) & 5" (binary_expression "(uint)*(undefined8 *)(lVar7 + 0x70)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(lVar7 + 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x70)" ( (binary_expression "lVar7 + 0x70" identifier + number_literal) )))) & number_literal) ))) ))) )) (compound_statement "{\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }" { (expression_statement "uVar4 = FUN_001a5050(param_1,lVar7,0);" (assignment_expression "uVar4 = FUN_001a5050(param_1,lVar7,0)" identifier = (call_expression "FUN_001a5050(param_1,lVar7,0)" identifier (argument_list "(param_1,lVar7,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(lVar7 + 0x78) = uVar4;" (assignment_expression "*(undefined4 *)(lVar7 + 0x78) = uVar4" (pointer_expression "*(undefined4 *)(lVar7 + 0x78)" * (cast_expression "(undefined4 *)(lVar7 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x78)" ( (binary_expression "lVar7 + 0x78" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined1 *)(param_1 + 0x368) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x368) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x368)" * (cast_expression "(undefined1 *)(param_1 + 0x368)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x368)" ( (binary_expression "param_1 + 0x368" identifier + number_literal) )))) = number_literal) ;) (return_statement "return lVar7;" return identifier ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * 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) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return 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) )) (goto_statement goto 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 IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence '))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) , LIT , LIT , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_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) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (binary_expression IDENT & LIT) , LIT , LIT )))) ;) }))) (labeled_statement statement_identifier : (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 = (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence '))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression 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 { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence '))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_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 )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_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) )) (goto_statement goto statement_identifier ;)) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_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 )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_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 )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) ))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return IDENT ;) })))
(function_definition "long FUN_001ba1a0(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,\n                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)\n\n{\n  long lVar1;\n  ulong uVar2;\n  char cVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char *__s1;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  *param_9 = 0;\n  cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);\n  if (cVar3 == '\0') {\n    return 0;\n  }\n  lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar7 == 0) goto LAB_001ba729;\n  if ((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }\n  else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }\nLAB_001ba3f8:\n  lVar9 = *(long *)(param_1 + 8);\n  cVar3 = *(char *)(lVar9 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar3 != '\0') {\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (lVar1 == 0) {\nLAB_001ba729:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar15 = false;\n  bVar18 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar18) goto LAB_001ba620;\n  lVar8 = 7;\n  pbVar10 = (byte *)".ctors.";\n  pbVar11 = param_4;\n  do {\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }\nLAB_001ba528:\n  cVar3 = '\0';\nLAB_001ba52a:\n  uVar2 = *(ulong *)(lVar7 + 0x70);\n  uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);\n  *param_9 = uVar6;\n  if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar7;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_001ba1a0(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,\n                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)" (identifier "FUN_001ba1a0") (parameter_list "(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,\n                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "byte *param_4" (type_identifier "byte") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "long *param_5" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) (, ",") (parameter_declaration "undefined8 param_8" (type_identifier "undefined8") (identifier "param_8")) (, ",") (parameter_declaration "undefined8 *param_9" (type_identifier "undefined8") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) () ")"))) (compound_statement "{\n  long lVar1;\n  ulong uVar2;\n  char cVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  char *__s1;\n  size_t __n;\n  byte *pbVar10;\n  byte *pbVar11;\n  uint uVar12;\n  uint uVar13;\n  undefined1 uVar14;\n  bool bVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar19 = 0;\n  *param_9 = 0;\n  cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);\n  if (cVar3 == '\0') {\n    return 0;\n  }\n  lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar7 == 0) goto LAB_001ba729;\n  if ((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }\n  else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }\nLAB_001ba3f8:\n  lVar9 = *(long *)(param_1 + 8);\n  cVar3 = *(char *)(lVar9 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar3 != '\0') {\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }\n  if (lVar1 == 0) {\nLAB_001ba729:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar15 = false;\n  bVar18 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar18) goto LAB_001ba620;\n  lVar8 = 7;\n  pbVar10 = (byte *)".ctors.";\n  pbVar11 = param_4;\n  do {\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  } while (bVar18);\n  bVar16 = false;\n  bVar15 = (!bVar15 && !bVar18) == bVar15;\n  if (bVar15) {\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }\nLAB_001ba528:\n  cVar3 = '\0';\nLAB_001ba52a:\n  uVar2 = *(ulong *)(lVar7 + 0x70);\n  uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);\n  *param_9 = uVar6;\n  if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar7;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "char *__s1;" (primitive_type "char") (pointer_declarator "*__s1" (* "*") (identifier "__s1")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "undefined1 uVar14;" (type_identifier "undefined1") (identifier "uVar14") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "undefined1 uVar17;" (type_identifier "undefined1") (identifier "uVar17") (; ";")) (declaration "bool bVar18;" (primitive_type "bool") (identifier "bVar18") (; ";")) (declaration "byte bVar19;" (type_identifier "byte") (identifier "bVar19") (; ";")) (declaration "undefined **local_80;" (type_identifier "undefined") (pointer_declarator "**local_80" (* "*") (pointer_declarator "*local_80" (* "*") (identifier "local_80"))) (; ";")) (declaration "undefined *local_60;" (type_identifier "undefined") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "byte *local_58;" (type_identifier "byte") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "byte local_48 [24];" (type_identifier "byte") (array_declarator "local_48 [24]" (identifier "local_48") ([ "[") (number_literal "24") (] "]")) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);" (assignment_expression "cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5)" (identifier "cVar3") (= "=") (call_expression "FUN_001b3220(param_1,param_2,param_4,param_5)" (identifier "FUN_001b3220") (argument_list "(param_1,param_2,param_4,param_5)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (cVar3 == '\0') {\n    return 0;\n  }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);" (assignment_expression "lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10)" (identifier "lVar7") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (lVar7 == 0) goto LAB_001ba729;" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001ba729;" (goto "goto") (statement_identifier "LAB_001ba729") (; ";"))) (if_statement "if ((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }\n  else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }" (if "if") (parenthesized_expression "((*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0))" (( "(") (binary_expression "(*(char *)(lVar7 + 0x5051) == '\0') ||\n     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)" (parenthesized_expression "(*(char *)(lVar7 + 0x5051) == '\0')" (( "(") (binary_expression "*(char *)(lVar7 + 0x5051) == '\0'" (pointer_expression "*(char *)(lVar7 + 0x5051)" (* "*") (cast_expression "(char *)(lVar7 + 0x5051)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x5051)" (( "(") (binary_expression "lVar7 + 0x5051" (identifier "lVar7") (+ "+") (number_literal "0x5051")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)" (( "(") (comma_expression "uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0" (assignment_expression "uVar12 = *(uint *)(*param_5 + 8)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(*param_5 + 8)" (* "*") (cast_expression "(uint *)(*param_5 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 8)" (( "(") (binary_expression "*param_5 + 8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "8")) () ")"))))) (, ",") (binary_expression "(uVar12 & 0x200) == 0" (parenthesized_expression "(uVar12 & 0x200)" (( "(") (binary_expression "uVar12 & 0x200" (identifier "uVar12") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    uVar14 = 0;\n    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';\n    if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }\n  }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';" (assignment_expression "uVar17 = *(char *)(lVar7 + 0x8f19) == '\0'" (identifier "uVar17") (= "=") (binary_expression "*(char *)(lVar7 + 0x8f19) == '\0'" (pointer_expression "*(char *)(lVar7 + 0x8f19)" (* "*") (cast_expression "(char *)(lVar7 + 0x8f19)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x8f19)" (( "(") (binary_expression "lVar7 + 0x8f19" (identifier "lVar7") (+ "+") (number_literal "0x8f19")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!(bool)uVar17) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }" (if "if") (parenthesized_expression "(!(bool)uVar17)" (( "(") (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17"))) () ")")) (compound_statement "{\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar7 = 0xe;\n      pbVar10 = (byte *)".text.unlikely";\n      pbVar11 = local_58;\n      do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }\n    }" ({ "{") (expression_statement "(**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);" (call_expression "(**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3)" (parenthesized_expression "(**(code **)(*(long *)param_2 + 0x80))" (( "(") (pointer_expression "**(code **)(*(long *)param_2 + 0x80)" (* "*") (pointer_expression "*(code **)(*(long *)param_2 + 0x80)" (* "*") (cast_expression "(code **)(*(long *)param_2 + 0x80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)param_2 + 0x80)" (( "(") (binary_expression "*(long *)param_2 + 0x80" (pointer_expression "*(long *)param_2" (* "*") (cast_expression "(long *)param_2" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (+ "+") (number_literal "0x80")) () ")"))))) () ")")) (argument_list "(&local_58,param_2,param_3)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "lVar7 = 0xe;" (assignment_expression "lVar7 = 0xe" (identifier "lVar7") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "pbVar10 = (byte *)".text.unlikely";" (assignment_expression "pbVar10 = (byte *)".text.unlikely"" (identifier "pbVar10") (= "=") (cast_expression "(byte *)".text.unlikely"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".text.unlikely"" (" """) (string_content ".text.unlikely") (" """)))) (; ";")) (expression_statement "pbVar11 = local_58;" (assignment_expression "pbVar11 = local_58" (identifier "pbVar11") (= "=") (identifier "local_58")) (; ";")) (do_statement "do {\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while ((bool)uVar17);" (do "do") (compound_statement "{\n        if (lVar7 == 0) break;\n        lVar7 = lVar7 + -1;\n        uVar14 = *pbVar10 < *pbVar11;\n        uVar17 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar7 == 0) break;" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" (identifier "lVar7") (= "=") (binary_expression "lVar7 + -1" (identifier "lVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar14 = *pbVar10 < *pbVar11;" (assignment_expression "uVar14 = *pbVar10 < *pbVar11" (identifier "uVar14") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "uVar17 = *pbVar10 == *pbVar11;" (assignment_expression "uVar17 = *pbVar10 == *pbVar11" (identifier "uVar17") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar17)" (( "(") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")) () ")")) (; ";")) (if_statement "if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }" (if "if") (parenthesized_expression "((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14)" (( "(") (binary_expression "(!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14" (parenthesized_expression "(!(bool)uVar14 && !(bool)uVar17)" (( "(") (binary_expression "!(bool)uVar14 && !(bool)uVar17" (unary_expression "!(bool)uVar14" (! "!") (cast_expression "(bool)uVar14" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar14"))) (&& "&&") (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")))) () ")")) (== "==") (cast_expression "(bool)uVar14" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar14"))) () ")")) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;\n        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }\n        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        goto LAB_001ba3f8;\n      }" ({ "{") (if_statement "if (local_58 != local_48) {\n          FUN_002dac60(local_58);\n        }" (if "if") (parenthesized_expression "(local_58 != local_48)" (( "(") (binary_expression "local_58 != local_48" (identifier "local_58") (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n          FUN_002dac60(local_58);\n        }" ({ "{") (expression_statement "FUN_002dac60(local_58);" (call_expression "FUN_002dac60(local_58)" (identifier "FUN_002dac60") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;" (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_001ba803;" (goto "goto") (statement_identifier "LAB_001ba803") (; ";"))) (expression_statement "uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;" (assignment_expression "uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f" (identifier "uVar12") (= "=") (binary_expression "*(uint *)(*param_5 + 8) & 0xfffff50f" (pointer_expression "*(uint *)(*param_5 + 8)" (* "*") (cast_expression "(uint *)(*param_5 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 8)" (( "(") (binary_expression "*param_5 + 8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0xfffff50f"))) (; ";")) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051" (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 "0x5051")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;\n        }" ({ "{") (expression_statement "uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;" (assignment_expression "uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f" (identifier "uVar12") (= "=") (binary_expression "*(uint *)(*param_5 + 8) & 0xfffff58f" (pointer_expression "*(uint *)(*param_5 + 8)" (* "*") (cast_expression "(uint *)(*param_5 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 8)" (( "(") (binary_expression "*param_5 + 8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0xfffff58f"))) (; ";")) (} "}"))) (expression_statement "uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);" (assignment_expression "uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58)" (identifier "uVar6") (= "=") (call_expression "FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58)" (identifier "FUN_0026e690") (argument_list "(param_1 + 0x10,".text.unlikely",1,&local_58)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) (, ",") (string_literal "".text.unlikely"" (" """) (string_content ".text.unlikely") (" """)) (, ",") (number_literal "1") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (; ";")) (expression_statement "lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);" (assignment_expression "lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0)" (identifier "lVar7") (= "=") (call_expression "FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0)" (identifier "FUN_001acd20") (argument_list "(param_1,uVar6,local_58,param_6,uVar12,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar6") (, ",") (identifier "local_58") (, ",") (identifier "param_6") (, ",") (identifier "uVar12") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;" (assignment_expression "*(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar7 + 0xca)" (* "*") (cast_expression "(byte *)(lVar7 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xca)" (( "(") (binary_expression "lVar7 + 0xca" (identifier "lVar7") (+ "+") (number_literal "0xca")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar7 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar7 + 0xca)" (* "*") (cast_expression "(byte *)(lVar7 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xca)" (( "(") (binary_expression "lVar7 + 0xca" (identifier "lVar7") (+ "+") (number_literal "0xca")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (goto_statement "goto LAB_001ba3f8;" (goto "goto") (statement_identifier "LAB_001ba3f8") (; ";")) (} "}"))) (if_statement "if (local_58 != local_48) {\n        FUN_002dac60(local_58);\n      }" (if "if") (parenthesized_expression "(local_58 != local_48)" (( "(") (binary_expression "local_58 != local_48" (identifier "local_58") (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n        FUN_002dac60(local_58);\n      }" ({ "{") (expression_statement "FUN_002dac60(local_58);" (call_expression "FUN_002dac60(local_58)" (identifier "FUN_002dac60") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_58 = param_2;" (assignment_expression "local_58 = param_2" (identifier "local_58") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_50 = param_3;" (assignment_expression "local_50 = param_3" (identifier "local_50") (= "=") (identifier "param_3")) (; ";")) (expression_statement "lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);" (assignment_expression "lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58)" (identifier "lVar9") (= "=") (call_expression "FUN_001b4c30(param_1 + 0x3e0,&local_58)" (identifier "FUN_001b4c30") (argument_list "(param_1 + 0x3e0,&local_58)" (( "(") (binary_expression "param_1 + 0x3e0" (identifier "param_1") (+ "+") (number_literal "0x3e0")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (; ";")) (if_statement "if (lVar9 == param_1 + 1000) {\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }" (if "if") (parenthesized_expression "(lVar9 == param_1 + 1000)" (( "(") (binary_expression "lVar9 == param_1 + 1000" (identifier "lVar9") (== "==") (binary_expression "param_1 + 1000" (identifier "param_1") (+ "+") (number_literal "1000"))) () ")")) (compound_statement "{\n      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);\n      if (lVar7 == 0) {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);" (assignment_expression "lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1)" (identifier "lVar7") (= "=") (call_expression "FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1)" (identifier "FUN_001acf30") (argument_list "(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") (, ",") (identifier "param_6") (, ",") (pointer_expression "*(undefined4 *)(*param_5 + 8)" (* "*") (cast_expression "(undefined4 *)(*param_5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 8)" (( "(") (binary_expression "*param_5 + 8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (lVar7 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }" (else "else") (compound_statement "{\n      uVar12 = *(uint *)(*param_5 + 8);\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\n      }\n      uVar13 = uVar12 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }\n      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);\n      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);\n      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }\n    }" ({ "{") (expression_statement "uVar12 = *(uint *)(*param_5 + 8);" (assignment_expression "uVar12 = *(uint *)(*param_5 + 8)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(*param_5 + 8)" (* "*") (cast_expression "(uint *)(*param_5 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 8)" (( "(") (binary_expression "*param_5 + 8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001ba803:\n                    \n        FUN_001a4340();\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_001ba803:\n                    \n        FUN_001a4340();\n      }" ({ "{") (labeled_statement "LAB_001ba803:\n                    \n        FUN_001a4340();" (statement_identifier "LAB_001ba803") (: ":") (expression_statement "FUN_001a4340();" (call_expression "FUN_001a4340()" (identifier "FUN_001a4340") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar13 = uVar12 & 0xfffff50f;" (assignment_expression "uVar13 = uVar12 & 0xfffff50f" (identifier "uVar13") (= "=") (binary_expression "uVar12 & 0xfffff50f" (identifier "uVar12") (& "&") (number_literal "0xfffff50f"))) (; ";")) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar13 = uVar12 & 0xfffff58f;\n      }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051" (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 "0x5051")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar13 = uVar12 & 0xfffff58f;\n      }" ({ "{") (expression_statement "uVar13 = uVar12 & 0xfffff58f;" (assignment_expression "uVar13 = uVar12 & 0xfffff58f" (identifier "uVar13") (= "=") (binary_expression "uVar12 & 0xfffff58f" (identifier "uVar12") (& "&") (number_literal "0xfffff58f"))) (; ";")) (} "}"))) (expression_statement "uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);" (assignment_expression "uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58)" (identifier "uVar6") (= "=") (call_expression "FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58)" (identifier "FUN_0026e690") (argument_list "(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) (, ",") (pointer_expression "**(undefined8 **)(lVar9 + 0x30)" (* "*") (pointer_expression "*(undefined8 **)(lVar9 + 0x30)" (* "*") (cast_expression "(undefined8 **)(lVar9 + 0x30)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar9 + 0x30)" (( "(") (binary_expression "lVar9 + 0x30" (identifier "lVar9") (+ "+") (number_literal "0x30")) () ")"))))) (, ",") (number_literal "1") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (; ";")) (expression_statement "lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);" (assignment_expression "lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0)" (identifier "lVar7") (= "=") (call_expression "FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0)" (identifier "FUN_001acd20") (argument_list "(param_1,uVar6,local_58,param_6,uVar13,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar6") (, ",") (identifier "local_58") (, ",") (identifier "param_6") (, ",") (identifier "uVar13") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (-1 < (char)*(byte *)(lVar7 + 0xca)) {\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }" (if "if") (parenthesized_expression "(-1 < (char)*(byte *)(lVar7 + 0xca))" (( "(") (binary_expression "-1 < (char)*(byte *)(lVar7 + 0xca)" (number_literal "-1") (< "<") (cast_expression "(char)*(byte *)(lVar7 + 0xca)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(lVar7 + 0xca)" (* "*") (cast_expression "(byte *)(lVar7 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xca)" (( "(") (binary_expression "lVar7 + 0xca" (identifier "lVar7") (+ "+") (number_literal "0xca")) () ")")))))) () ")")) (compound_statement "{\n        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;\n        lVar9 = *(long *)(lVar9 + 0x30);\n        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);\n        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);\n      }" ({ "{") (expression_statement "*(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;" (assignment_expression "*(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar7 + 0xca)" (* "*") (cast_expression "(byte *)(lVar7 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xca)" (( "(") (binary_expression "lVar7 + 0xca" (identifier "lVar7") (+ "+") (number_literal "0xca")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar7 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar7 + 0xca)" (* "*") (cast_expression "(byte *)(lVar7 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xca)" (( "(") (binary_expression "lVar7 + 0xca" (identifier "lVar7") (+ "+") (number_literal "0xca")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (expression_statement "lVar9 = *(long *)(lVar9 + 0x30);" (assignment_expression "lVar9 = *(long *)(lVar9 + 0x30)" (identifier "lVar9") (= "=") (pointer_expression "*(long *)(lVar9 + 0x30)" (* "*") (cast_expression "(long *)(lVar9 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x30)" (( "(") (binary_expression "lVar9 + 0x30" (identifier "lVar9") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);" (assignment_expression "*(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8)" (pointer_expression "*(undefined8 *)(lVar7 + 0xd8)" (* "*") (cast_expression "(undefined8 *)(lVar7 + 0xd8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xd8)" (( "(") (binary_expression "lVar7 + 0xd8" (identifier "lVar7") (+ "+") (number_literal "0xd8")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(lVar9 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 8)" (( "(") (binary_expression "lVar9 + 8" (identifier "lVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);" (assignment_expression "*(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10)" (pointer_expression "*(undefined8 *)(lVar7 + 0xe0)" (* "*") (cast_expression "(undefined8 *)(lVar7 + 0xe0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xe0)" (( "(") (binary_expression "lVar7 + 0xe0" (identifier "lVar7") (+ "+") (number_literal "0xe0")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(lVar9 + 0x10)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x10)" (( "(") (binary_expression "lVar9 + 0x10" (identifier "lVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }" (else "else") (compound_statement "{\n    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);\n    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);\n  }" ({ "{") (expression_statement "param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);" (assignment_expression "param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0)" (identifier "param_4") (= "=") (cast_expression "(byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0026e690(param_1 + 0x10,param_4,1,0)" (identifier "FUN_0026e690") (argument_list "(param_1 + 0x10,param_4,1,0)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) (, ",") (identifier "param_4") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);" (assignment_expression "lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0)" (identifier "lVar7") (= "=") (call_expression "FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0)" (identifier "FUN_001a8f30") (argument_list "(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_4") (, ",") (identifier "param_6") (, ",") (binary_expression "uVar12 & 0xfffff7ff" (identifier "uVar12") (& "&") (number_literal "0xfffff7ff")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_001ba3f8:\n  lVar9 = *(long *)(param_1 + 8);" (statement_identifier "LAB_001ba3f8") (: ":") (expression_statement "lVar9 = *(long *)(param_1 + 8);" (assignment_expression "lVar9 = *(long *)(param_1 + 8)" (identifier "lVar9") (= "=") (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (expression_statement "cVar3 = *(char *)(lVar9 + 0x148);" (assignment_expression "cVar3 = *(char *)(lVar9 + 0x148)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(lVar9 + 0x148)" (* "*") (cast_expression "(char *)(lVar9 + 0x148)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x148)" (( "(") (binary_expression "lVar9 + 0x148" (identifier "lVar9") (+ "+") (number_literal "0x148")) () ")"))))) (; ";")) (expression_statement "lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);" (assignment_expression "lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10)" (identifier "lVar1") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (cVar3 != '\0') {\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if (lVar1 == 0) goto LAB_001ba729;\n    goto LAB_001ba52a;\n  }" ({ "{") (if_statement "if (lVar1 == 0) goto LAB_001ba729;" (if "if") (parenthesized_expression "(lVar1 == 0)" (( "(") (binary_expression "lVar1 == 0" (identifier "lVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001ba729;" (goto "goto") (statement_identifier "LAB_001ba729") (; ";"))) (goto_statement "goto LAB_001ba52a;" (goto "goto") (statement_identifier "LAB_001ba52a") (; ";")) (} "}"))) (if_statement "if (lVar1 == 0) {\nLAB_001ba729:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" (if "if") (parenthesized_expression "(lVar1 == 0)" (( "(") (binary_expression "lVar1 == 0" (identifier "lVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001ba729:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (labeled_statement "LAB_001ba729:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (statement_identifier "LAB_001ba729") (: ":") (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") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar18 = *(char *)(lVar1 + 0x5051) == '\0';" (assignment_expression "bVar18 = *(char *)(lVar1 + 0x5051) == '\0'" (identifier "bVar18") (= "=") (binary_expression "*(char *)(lVar1 + 0x5051) == '\0'" (pointer_expression "*(char *)(lVar1 + 0x5051)" (* "*") (cast_expression "(char *)(lVar1 + 0x5051)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x5051)" (( "(") (binary_expression "lVar1 + 0x5051" (identifier "lVar1") (+ "+") (number_literal "0x5051")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!bVar18) goto LAB_001ba620;" (if "if") (parenthesized_expression "(!bVar18)" (( "(") (unary_expression "!bVar18" (! "!") (identifier "bVar18")) () ")")) (goto_statement "goto LAB_001ba620;" (goto "goto") (statement_identifier "LAB_001ba620") (; ";"))) (expression_statement "lVar8 = 7;" (assignment_expression "lVar8 = 7" (identifier "lVar8") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar10 = (byte *)".ctors.";" (assignment_expression "pbVar10 = (byte *)".ctors."" (identifier "pbVar10") (= "=") (cast_expression "(byte *)".ctors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors."" (" """) (string_content ".ctors.") (" """)))) (; ";")) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" (identifier "pbVar11") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  } while (bVar18);" (do "do") (compound_statement "{\n    if (lVar8 == 0) break;\n    lVar8 = lVar8 + -1;\n    bVar15 = *pbVar10 < *pbVar11;\n    bVar18 = *pbVar10 == *pbVar11;\n    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n  }" ({ "{") (if_statement "if (lVar8 == 0) break;" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" (identifier "lVar8") (= "=") (binary_expression "lVar8 + -1" (identifier "lVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar10 < *pbVar11;" (assignment_expression "bVar15 = *pbVar10 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar18 = *pbVar10 == *pbVar11;" (assignment_expression "bVar18 = *pbVar10 == *pbVar11" (identifier "bVar18") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" (identifier "bVar15") (= "=") (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" (( "(") (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (bVar15) {\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }\n  else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\nLAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n    cVar3 = *(char *)(lVar9 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }\n    if (cVar3 != '\0') goto LAB_001ba52a;\nLAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;\n    if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }\n  }" ({ "{") (labeled_statement "LAB_001ba4e0:\n    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;" (statement_identifier "LAB_001ba4e0") (: ":") (expression_statement "*(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;" (assignment_expression "*(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar7 + 0xc9)" (* "*") (cast_expression "(byte *)(lVar7 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xc9)" (( "(") (binary_expression "lVar7 + 0xc9" (identifier "lVar7") (+ "+") (number_literal "0xc9")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar7 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar7 + 0xc9)" (* "*") (cast_expression "(byte *)(lVar7 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xc9)" (( "(") (binary_expression "lVar7 + 0xc9" (identifier "lVar7") (+ "+") (number_literal "0xc9")) () ")")))) (| "|") (number_literal "8"))) (; ";"))) (expression_statement "cVar3 = *(char *)(lVar9 + 0x148);" (assignment_expression "cVar3 = *(char *)(lVar9 + 0x148)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(lVar9 + 0x148)" (* "*") (cast_expression "(char *)(lVar9 + 0x148)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x148)" (( "(") (binary_expression "lVar9 + 0x148" (identifier "lVar9") (+ "+") (number_literal "0x148")) () ")"))))) (; ";")) (if_statement "if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }" (if "if") (parenthesized_expression "(*(char *)(lVar1 + 0x62b9) == '\0')" (( "(") (binary_expression "*(char *)(lVar1 + 0x62b9) == '\0'" (pointer_expression "*(char *)(lVar1 + 0x62b9)" (* "*") (cast_expression "(char *)(lVar1 + 0x62b9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x62b9)" (( "(") (binary_expression "lVar1 + 0x62b9" (identifier "lVar1") (+ "+") (number_literal "0x62b9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;\n      goto LAB_001ba62e;\n    }" ({ "{") (labeled_statement "LAB_001ba75b:\n      if (cVar3 != '\0') goto LAB_001ba52a;" (statement_identifier "LAB_001ba75b") (: ":") (if_statement "if (cVar3 != '\0') goto LAB_001ba52a;" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001ba52a;" (goto "goto") (statement_identifier "LAB_001ba52a") (; ";")))) (goto_statement "goto LAB_001ba62e;" (goto "goto") (statement_identifier "LAB_001ba62e") (; ";")) (} "}"))) (if_statement "if (cVar3 != '\0') goto LAB_001ba52a;" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001ba52a;" (goto "goto") (statement_identifier "LAB_001ba52a") (; ";"))) (labeled_statement "LAB_001ba504:\n    cVar3 = *(char *)(lVar1 + 0x5051);" (statement_identifier "LAB_001ba504") (: ":") (expression_statement "cVar3 = *(char *)(lVar1 + 0x5051);" (assignment_expression "cVar3 = *(char *)(lVar1 + 0x5051)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(lVar1 + 0x5051)" (* "*") (cast_expression "(char *)(lVar1 + 0x5051)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x5051)" (( "(") (binary_expression "lVar1 + 0x5051" (identifier "lVar1") (+ "+") (number_literal "0x5051")) () ")"))))) (; ";"))) (if_statement "if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x371) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x371) != '\0'" (pointer_expression "*(char *)(param_1 + 0x371)" (* "*") (cast_expression "(char *)(param_1 + 0x371)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x371)" (( "(") (binary_expression "param_1 + 0x371" (identifier "param_1") (+ "+") (number_literal "0x371")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001ba636;" (goto "goto") (statement_identifier "LAB_001ba636") (; ";"))) (if_statement "if (cVar3 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;\n      cVar3 = *(char *)(lVar9 + 0x148);\n      goto LAB_001ba75b;\n    }" ({ "{") (expression_statement "__n = 0xe;" (assignment_expression "__n = 0xe" (identifier "__n") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "__s1 = ".text.unlikely";" (assignment_expression "__s1 = ".text.unlikely"" (identifier "__s1") (= "=") (string_literal "".text.unlikely"" (" """) (string_content ".text.unlikely") (" """))) (; ";")) (expression_statement "local_80 = &PTR_s__text_unlikely_00427ee0;" (assignment_expression "local_80 = &PTR_s__text_unlikely_00427ee0" (identifier "local_80") (= "=") (pointer_expression "&PTR_s__text_unlikely_00427ee0" (& "&") (identifier "PTR_s__text_unlikely_00427ee0"))) (; ";")) (while_statement "while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }" (while "while") (parenthesized_expression "(iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0)" (( "(") (comma_expression "iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0" (assignment_expression "iVar5 = strncmp(__s1,(char *)param_4,__n)" (identifier "iVar5") (= "=") (call_expression "strncmp(__s1,(char *)param_4,__n)" (identifier "strncmp") (argument_list "(__s1,(char *)param_4,__n)" (( "(") (identifier "__s1") (, ",") (cast_expression "(char *)param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_4")) (, ",") (identifier "__n") () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }" ({ "{") (expression_statement "local_80 = local_80 + 1;" (assignment_expression "local_80 = local_80 + 1" (identifier "local_80") (= "=") (binary_expression "local_80 + 1" (identifier "local_80") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;" (if "if") (parenthesized_expression "(local_80 == &PTR_s_aranges_00427f00)" (( "(") (binary_expression "local_80 == &PTR_s_aranges_00427f00" (identifier "local_80") (== "==") (pointer_expression "&PTR_s_aranges_00427f00" (& "&") (identifier "PTR_s_aranges_00427f00"))) () ")")) (goto_statement "goto LAB_001ba63e;" (goto "goto") (statement_identifier "LAB_001ba63e") (; ";"))) (expression_statement "__s1 = *local_80;" (assignment_expression "__s1 = *local_80" (identifier "__s1") (= "=") (pointer_expression "*local_80" (* "*") (identifier "local_80"))) (; ";")) (expression_statement "__n = strlen(__s1);" (assignment_expression "__n = strlen(__s1)" (identifier "__n") (= "=") (call_expression "strlen(__s1)" (identifier "strlen") (argument_list "(__s1)" (( "(") (identifier "__s1") () ")")))) (; ";")) (} "}"))) (expression_statement "*(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;" (assignment_expression "*(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar7 + 0xc9)" (* "*") (cast_expression "(byte *)(lVar7 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xc9)" (( "(") (binary_expression "lVar7 + 0xc9" (identifier "lVar7") (+ "+") (number_literal "0xc9")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar7 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar7 + 0xc9)" (* "*") (cast_expression "(byte *)(lVar7 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xc9)" (( "(") (binary_expression "lVar7 + 0xc9" (identifier "lVar7") (+ "+") (number_literal "0xc9")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (expression_statement "cVar3 = *(char *)(lVar9 + 0x148);" (assignment_expression "cVar3 = *(char *)(lVar9 + 0x148)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(lVar9 + 0x148)" (* "*") (cast_expression "(char *)(lVar9 + 0x148)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x148)" (( "(") (binary_expression "lVar9 + 0x148" (identifier "lVar9") (+ "+") (number_literal "0x148")) () ")"))))) (; ";")) (goto_statement "goto LAB_001ba75b;" (goto "goto") (statement_identifier "LAB_001ba75b") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    lVar8 = 7;\n    pbVar10 = (byte *)".dtors.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar18 = false;\n    bVar15 = (!bVar16 && !bVar15) == bVar16;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".init_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    bVar16 = false;\n    bVar15 = (!bVar18 && !bVar15) == bVar18;\n    if (bVar15) goto LAB_001ba4e0;\n    lVar8 = 0xc;\n    pbVar10 = (byte *)".fini_array.";\n    pbVar11 = param_4;\n    do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);\n    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;\n    bVar15 = false;\n    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }\nLAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;\nLAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);\nLAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }\n  }" ({ "{") (expression_statement "lVar8 = 7;" (assignment_expression "lVar8 = 7" (identifier "lVar8") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar10 = (byte *)".dtors.";" (assignment_expression "pbVar10 = (byte *)".dtors."" (identifier "pbVar10") (= "=") (cast_expression "(byte *)".dtors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors."" (" """) (string_content ".dtors.") (" """)))) (; ";")) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" (identifier "pbVar11") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar8 == 0) break;" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" (identifier "lVar8") (= "=") (binary_expression "lVar8 + -1" (identifier "lVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" (identifier "bVar16") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" (identifier "bVar15") (= "=") (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" (( "(") (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (bVar15) goto LAB_001ba4e0;" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (goto_statement "goto LAB_001ba4e0;" (goto "goto") (statement_identifier "LAB_001ba4e0") (; ";"))) (expression_statement "lVar8 = 0xc;" (assignment_expression "lVar8 = 0xc" (identifier "lVar8") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar10 = (byte *)".init_array.";" (assignment_expression "pbVar10 = (byte *)".init_array."" (identifier "pbVar10") (= "=") (cast_expression "(byte *)".init_array."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".init_array."" (" """) (string_content ".init_array.") (" """)))) (; ";")) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" (identifier "pbVar11") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar18 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar8 == 0) break;" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" (identifier "lVar8") (= "=") (binary_expression "lVar8 + -1" (identifier "lVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar10 < *pbVar11;" (assignment_expression "bVar18 = *pbVar10 < *pbVar11" (identifier "bVar18") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" (identifier "bVar15") (= "=") (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (bVar15) goto LAB_001ba4e0;" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (goto_statement "goto LAB_001ba4e0;" (goto "goto") (statement_identifier "LAB_001ba4e0") (; ";"))) (expression_statement "lVar8 = 0xc;" (assignment_expression "lVar8 = 0xc" (identifier "lVar8") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar10 = (byte *)".fini_array.";" (assignment_expression "pbVar10 = (byte *)".fini_array."" (identifier "pbVar10") (= "=") (cast_expression "(byte *)".fini_array."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".fini_array."" (" """) (string_content ".fini_array.") (" """)))) (; ";")) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" (identifier "pbVar11") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (lVar8 == 0) break;\n      lVar8 = lVar8 + -1;\n      bVar16 = *pbVar10 < *pbVar11;\n      bVar15 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar8 == 0) break;" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" (identifier "lVar8") (= "=") (binary_expression "lVar8 + -1" (identifier "lVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" (identifier "bVar16") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;" (if "if") (parenthesized_expression "((!bVar16 && !bVar15) == bVar16)" (( "(") (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" (( "(") (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar16")) () ")")) (goto_statement "goto LAB_001ba4e0;" (goto "goto") (statement_identifier "LAB_001ba4e0") (; ";"))) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar18 = *(char *)(lVar1 + 0x1179) == '\0';" (assignment_expression "bVar18 = *(char *)(lVar1 + 0x1179) == '\0'" (identifier "bVar18") (= "=") (binary_expression "*(char *)(lVar1 + 0x1179) == '\0'" (pointer_expression "*(char *)(lVar1 + 0x1179)" (* "*") (cast_expression "(char *)(lVar1 + 0x1179)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x1179)" (( "(") (binary_expression "lVar1 + 0x1179" (identifier "lVar1") (+ "+") (number_literal "0x1179")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!bVar18) {\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }" (if "if") (parenthesized_expression "(!bVar18)" (( "(") (unary_expression "!bVar18" (! "!") (identifier "bVar18")) () ")")) (compound_statement "{\n      lVar8 = 7;\n      pbVar10 = param_4;\n      pbVar11 = (byte *)".ctors";\n      do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar16 = false;\n      bVar15 = (!bVar15 && !bVar18) == bVar15;\n      if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }\n      goto LAB_001ba4e0;\n    }" ({ "{") (expression_statement "lVar8 = 7;" (assignment_expression "lVar8 = 7" (identifier "lVar8") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar10 = param_4;" (assignment_expression "pbVar10 = param_4" (identifier "pbVar10") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pbVar11 = (byte *)".ctors";" (assignment_expression "pbVar11 = (byte *)".ctors"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)".ctors"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors"" (" """) (string_content ".ctors") (" """)))) (; ";")) (do_statement "do {\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);" (do "do") (compound_statement "{\n        if (lVar8 == 0) break;\n        lVar8 = lVar8 + -1;\n        bVar15 = *pbVar10 < *pbVar11;\n        bVar18 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar8 == 0) break;" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" (identifier "lVar8") (= "=") (binary_expression "lVar8 + -1" (identifier "lVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar10 < *pbVar11;" (assignment_expression "bVar15 = *pbVar10 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar18 = *pbVar10 == *pbVar11;" (assignment_expression "bVar18 = *pbVar10 == *pbVar11" (identifier "bVar18") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" (identifier "bVar15") (= "=") (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" (( "(") (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (!bVar15) {\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (compound_statement "{\n        lVar8 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".dtors";\n        do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;\n      }" ({ "{") (expression_statement "lVar8 = 7;" (assignment_expression "lVar8 = 7" (identifier "lVar8") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar10 = param_4;" (assignment_expression "pbVar10 = param_4" (identifier "pbVar10") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pbVar11 = (byte *)".dtors";" (assignment_expression "pbVar11 = (byte *)".dtors"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)".dtors"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors"" (" """) (string_content ".dtors") (" """)))) (; ";")) (do_statement "do {\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar15);" (do "do") (compound_statement "{\n          if (lVar8 == 0) break;\n          lVar8 = lVar8 + -1;\n          bVar16 = *pbVar10 < *pbVar11;\n          bVar15 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar8 == 0) break;" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar8 = lVar8 + -1;" (assignment_expression "lVar8 = lVar8 + -1" (identifier "lVar8") (= "=") (binary_expression "lVar8 + -1" (identifier "lVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" (identifier "bVar16") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;" (if "if") (parenthesized_expression "((!bVar16 && !bVar15) != bVar16)" (( "(") (binary_expression "(!bVar16 && !bVar15) != bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" (( "(") (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (!= "!=") (identifier "bVar16")) () ")")) (goto_statement "goto LAB_001ba620;" (goto "goto") (statement_identifier "LAB_001ba620") (; ";"))) (} "}"))) (goto_statement "goto LAB_001ba4e0;" (goto "goto") (statement_identifier "LAB_001ba4e0") (; ";")) (} "}"))) (labeled_statement "LAB_001ba620:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;" (statement_identifier "LAB_001ba620") (: ":") (if_statement "if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;" (if "if") (parenthesized_expression "(*(char *)(lVar1 + 0x62b9) != '\0')" (( "(") (binary_expression "*(char *)(lVar1 + 0x62b9) != '\0'" (pointer_expression "*(char *)(lVar1 + 0x62b9)" (* "*") (cast_expression "(char *)(lVar1 + 0x62b9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x62b9)" (( "(") (binary_expression "lVar1 + 0x62b9" (identifier "lVar1") (+ "+") (number_literal "0x62b9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001ba504;" (goto "goto") (statement_identifier "LAB_001ba504") (; ";")))) (labeled_statement "LAB_001ba62e:\n    cVar3 = *(char *)(lVar1 + 0x5051);" (statement_identifier "LAB_001ba62e") (: ":") (expression_statement "cVar3 = *(char *)(lVar1 + 0x5051);" (assignment_expression "cVar3 = *(char *)(lVar1 + 0x5051)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(lVar1 + 0x5051)" (* "*") (cast_expression "(char *)(lVar1 + 0x5051)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x5051)" (( "(") (binary_expression "lVar1 + 0x5051" (identifier "lVar1") (+ "+") (number_literal "0x5051")) () ")"))))) (; ";"))) (labeled_statement "LAB_001ba636:\n    if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }" (statement_identifier "LAB_001ba636") (: ":") (if_statement "if (cVar3 == '\0') {\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);\n      bVar15 = uVar12 < 4;\n      bVar18 = uVar12 == 4;\n      if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }\n    }" ({ "{") (labeled_statement "LAB_001ba63e:\n      uVar12 = *(uint *)(*param_5 + 0x14);" (statement_identifier "LAB_001ba63e") (: ":") (expression_statement "uVar12 = *(uint *)(*param_5 + 0x14);" (assignment_expression "uVar12 = *(uint *)(*param_5 + 0x14)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(*param_5 + 0x14)" (* "*") (cast_expression "(uint *)(*param_5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 0x14)" (( "(") (binary_expression "*param_5 + 0x14" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";"))) (expression_statement "bVar15 = uVar12 < 4;" (assignment_expression "bVar15 = uVar12 < 4" (identifier "bVar15") (= "=") (binary_expression "uVar12 < 4" (identifier "uVar12") (< "<") (number_literal "4"))) (; ";")) (expression_statement "bVar18 = uVar12 == 4;" (assignment_expression "bVar18 = uVar12 == 4" (identifier "bVar18") (= "=") (binary_expression "uVar12 == 4" (identifier "uVar12") (== "==") (number_literal "4"))) (; ";")) (if_statement "if (4 < uVar12) {\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }" (if "if") (parenthesized_expression "(4 < uVar12)" (( "(") (binary_expression "4 < uVar12" (number_literal "4") (< "<") (identifier "uVar12")) () ")")) (compound_statement "{\n        lVar9 = 7;\n        pbVar10 = param_4;\n        pbVar11 = (byte *)".ctors";\n        do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);\n        bVar16 = false;\n        bVar15 = (!bVar15 && !bVar18) == bVar15;\n        if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }\n        local_60 = &DAT_0043e980;\n        local_58 = param_2;\n        local_50 = param_3;\n        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);\n        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001ba52a;\n      }" ({ "{") (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" (identifier "lVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar10 = param_4;" (assignment_expression "pbVar10 = param_4" (identifier "pbVar10") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pbVar11 = (byte *)".ctors";" (assignment_expression "pbVar11 = (byte *)".ctors"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)".ctors"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors"" (" """) (string_content ".ctors") (" """)))) (; ";")) (do_statement "do {\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        } while (bVar18);" (do "do") (compound_statement "{\n          if (lVar9 == 0) break;\n          lVar9 = lVar9 + -1;\n          bVar15 = *pbVar10 < *pbVar11;\n          bVar18 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar9 == 0) break;" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + -1" (identifier "lVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar15 = *pbVar10 < *pbVar11;" (assignment_expression "bVar15 = *pbVar10 < *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar18 = *pbVar10 == *pbVar11;" (assignment_expression "bVar18 = *pbVar10 == *pbVar11" (identifier "bVar18") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar15 && !bVar18) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar18) == bVar15" (identifier "bVar15") (= "=") (binary_expression "(!bVar15 && !bVar18) == bVar15" (parenthesized_expression "(!bVar15 && !bVar18)" (( "(") (binary_expression "!bVar15 && !bVar18" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (== "==") (identifier "bVar15"))) (; ";")) (if_statement "if (bVar15) {\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }\n        else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\nLAB_001ba680:\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".init_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) goto LAB_001ba6e0;\n        }" ({ "{") (labeled_statement "LAB_001ba680:\n          bVar18 = false;" (statement_identifier "LAB_001ba680") (: ":") (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";"))) (expression_statement "lVar9 = 0xc;" (assignment_expression "lVar9 = 0xc" (identifier "lVar9") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar10 = *(byte **)(lVar7 + 0x28);" (assignment_expression "pbVar10 = *(byte **)(lVar7 + 0x28)" (identifier "pbVar10") (= "=") (pointer_expression "*(byte **)(lVar7 + 0x28)" (* "*") (cast_expression "(byte **)(lVar7 + 0x28)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar7 + 0x28)" (( "(") (binary_expression "lVar7 + 0x28" (identifier "lVar7") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "pbVar11 = (byte *)".init_array";" (assignment_expression "pbVar11 = (byte *)".init_array"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)".init_array"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".init_array"" (" """) (string_content ".init_array") (" """)))) (; ";")) (do_statement "do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);" (do "do") (compound_statement "{\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar9 == 0) break;" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + -1" (identifier "lVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar10 < *pbVar11;" (assignment_expression "bVar18 = *pbVar10 < *pbVar11" (identifier "bVar18") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" (identifier "bVar15") (= "=") (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (!bVar15) goto LAB_001ba6e0;" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (goto_statement "goto LAB_001ba6e0;" (goto "goto") (statement_identifier "LAB_001ba6e0") (; ";"))) (} "}")) (else_clause "else {\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }" (else "else") (compound_statement "{\n          lVar9 = 7;\n          pbVar10 = (byte *)".ctors.";\n          pbVar11 = param_4;\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar15 = (!bVar16 && !bVar15) == bVar16;\n          if (bVar15) goto LAB_001ba680;\nLAB_001ba6e0:\n          bVar18 = false;\n          lVar9 = 7;\n          pbVar10 = param_4;\n          pbVar11 = (byte *)".dtors";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          bVar16 = false;\n          bVar15 = (!bVar18 && !bVar15) == bVar18;\n          if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }\n          bVar18 = false;\n          lVar9 = 0xc;\n          pbVar10 = *(byte **)(lVar7 + 0x28);\n          pbVar11 = (byte *)".fini_array";\n          do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);\n          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;\n        }" ({ "{") (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" (identifier "lVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar10 = (byte *)".ctors.";" (assignment_expression "pbVar10 = (byte *)".ctors."" (identifier "pbVar10") (= "=") (cast_expression "(byte *)".ctors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors."" (" """) (string_content ".ctors.") (" """)))) (; ";")) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" (identifier "pbVar11") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);" (do "do") (compound_statement "{\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar16 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar9 == 0) break;" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + -1" (identifier "lVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" (identifier "bVar16") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" (identifier "bVar15") (= "=") (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" (( "(") (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (bVar15) goto LAB_001ba680;" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (goto_statement "goto LAB_001ba680;" (goto "goto") (statement_identifier "LAB_001ba680") (; ";"))) (labeled_statement "LAB_001ba6e0:\n          bVar18 = false;" (statement_identifier "LAB_001ba6e0") (: ":") (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";"))) (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" (identifier "lVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar10 = param_4;" (assignment_expression "pbVar10 = param_4" (identifier "pbVar10") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pbVar11 = (byte *)".dtors";" (assignment_expression "pbVar11 = (byte *)".dtors"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)".dtors"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors"" (" """) (string_content ".dtors") (" """)))) (; ";")) (do_statement "do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);" (do "do") (compound_statement "{\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar9 == 0) break;" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + -1" (identifier "lVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar10 < *pbVar11;" (assignment_expression "bVar18 = *pbVar10 < *pbVar11" (identifier "bVar18") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (!bVar18 && !bVar15) == bVar18;" (assignment_expression "bVar15 = (!bVar18 && !bVar15) == bVar18" (identifier "bVar15") (= "=") (binary_expression "(!bVar18 && !bVar15) == bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar18"))) (; ";")) (if_statement "if (!bVar15) {\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (compound_statement "{\n            lVar9 = 7;\n            pbVar10 = (byte *)".dtors.";\n            pbVar11 = param_4;\n            do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);\n            bVar15 = (!bVar16 && !bVar15) == bVar16;\n            if (!bVar15) goto LAB_001ba528;\n          }" ({ "{") (expression_statement "lVar9 = 7;" (assignment_expression "lVar9 = 7" (identifier "lVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar10 = (byte *)".dtors.";" (assignment_expression "pbVar10 = (byte *)".dtors."" (identifier "pbVar10") (= "=") (cast_expression "(byte *)".dtors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors."" (" """) (string_content ".dtors.") (" """)))) (; ";")) (expression_statement "pbVar11 = param_4;" (assignment_expression "pbVar11 = param_4" (identifier "pbVar11") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            } while (bVar15);" (do "do") (compound_statement "{\n              if (lVar9 == 0) break;\n              lVar9 = lVar9 + -1;\n              bVar16 = *pbVar10 < *pbVar11;\n              bVar15 = *pbVar10 == *pbVar11;\n              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n            }" ({ "{") (if_statement "if (lVar9 == 0) break;" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + -1" (identifier "lVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar10 < *pbVar11;" (assignment_expression "bVar16 = *pbVar10 < *pbVar11" (identifier "bVar16") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" (identifier "bVar15") (= "=") (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" (( "(") (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (!bVar15) goto LAB_001ba528;" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (goto_statement "goto LAB_001ba528;" (goto "goto") (statement_identifier "LAB_001ba528") (; ";"))) (} "}"))) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "lVar9 = 0xc;" (assignment_expression "lVar9 = 0xc" (identifier "lVar9") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar10 = *(byte **)(lVar7 + 0x28);" (assignment_expression "pbVar10 = *(byte **)(lVar7 + 0x28)" (identifier "pbVar10") (= "=") (pointer_expression "*(byte **)(lVar7 + 0x28)" (* "*") (cast_expression "(byte **)(lVar7 + 0x28)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar7 + 0x28)" (( "(") (binary_expression "lVar7 + 0x28" (identifier "lVar7") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "pbVar11 = (byte *)".fini_array";" (assignment_expression "pbVar11 = (byte *)".fini_array"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)".fini_array"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".fini_array"" (" """) (string_content ".fini_array") (" """)))) (; ";")) (do_statement "do {\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          } while (bVar15);" (do "do") (compound_statement "{\n            if (lVar9 == 0) break;\n            lVar9 = lVar9 + -1;\n            bVar18 = *pbVar10 < *pbVar11;\n            bVar15 = *pbVar10 == *pbVar11;\n            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;\n            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar9 == 0) break;" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + -1" (identifier "lVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar10 < *pbVar11;" (assignment_expression "bVar18 = *pbVar10 < *pbVar11" (identifier "bVar18") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar10 == *pbVar11;" (assignment_expression "bVar15 = *pbVar10 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar10 + (ulong)bVar19 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar11 + (ulong)bVar19 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;" (if "if") (parenthesized_expression "((!bVar18 && !bVar15) != bVar18)" (( "(") (binary_expression "(!bVar18 && !bVar15) != bVar18" (parenthesized_expression "(!bVar18 && !bVar15)" (( "(") (binary_expression "!bVar18 && !bVar15" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (!= "!=") (identifier "bVar18")) () ")")) (goto_statement "goto LAB_001ba528;" (goto "goto") (statement_identifier "LAB_001ba528") (; ";"))) (} "}")))) (expression_statement "local_60 = &DAT_0043e980;" (assignment_expression "local_60 = &DAT_0043e980" (identifier "local_60") (= "=") (pointer_expression "&DAT_0043e980" (& "&") (identifier "DAT_0043e980"))) (; ";")) (expression_statement "local_58 = param_2;" (assignment_expression "local_58 = param_2" (identifier "local_58") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_50 = param_3;" (assignment_expression "local_50 = param_3" (identifier "local_50") (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);" (call_expression "FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1)" (identifier "FUN_001ba100") (argument_list "(&DAT_0043e980,&local_58,&local_60,1)" (( "(") (pointer_expression "&DAT_0043e980" (& "&") (identifier "DAT_0043e980")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);" (assignment_expression "cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(*(long *)(param_1 + 8) + 0x148)" (* "*") (cast_expression "(char *)(*(long *)(param_1 + 8) + 0x148)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x148)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x148" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x148")) () ")"))))) (; ";")) (goto_statement "goto LAB_001ba52a;" (goto "goto") (statement_identifier "LAB_001ba52a") (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_001ba528:\n  cVar3 = '\0';" (statement_identifier "LAB_001ba528") (: ":") (expression_statement "cVar3 = '\0';" (assignment_expression "cVar3 = '\0'" (identifier "cVar3") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (labeled_statement "LAB_001ba52a:\n  uVar2 = *(ulong *)(lVar7 + 0x70);" (statement_identifier "LAB_001ba52a") (: ":") (expression_statement "uVar2 = *(ulong *)(lVar7 + 0x70);" (assignment_expression "uVar2 = *(ulong *)(lVar7 + 0x70)" (identifier "uVar2") (= "=") (pointer_expression "*(ulong *)(lVar7 + 0x70)" (* "*") (cast_expression "(ulong *)(lVar7 + 0x70)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x70)" (( "(") (binary_expression "lVar7 + 0x70" (identifier "lVar7") (+ "+") (number_literal "0x70")) () ")"))))) (; ";"))) (expression_statement "uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);" (assignment_expression "uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3)" (identifier "uVar6") (= "=") (call_expression "FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3)" (identifier "FUN_00226940") (argument_list "(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3)" (( "(") (identifier "lVar7") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_7") (, ",") (identifier "cVar3") () ")")))) (; ";")) (expression_statement "*param_9 = uVar6;" (assignment_expression "*param_9 = uVar6" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }" (if "if") (parenthesized_expression "(((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5)))" (( "(") (binary_expression "((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))" (parenthesized_expression "((uVar2 & 2) != 0)" (( "(") (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" (( "(") (binary_expression "uVar2 & 2" (identifier "uVar2") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))" (( "(") (binary_expression "((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5)" (parenthesized_expression "((uint)uVar2 & 5)" (( "(") (binary_expression "(uint)uVar2 & 5" (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2")) (& "&") (number_literal "5")) () ")")) (!= "!=") (parenthesized_expression "((uint)*(undefined8 *)(lVar7 + 0x70) & 5)" (( "(") (binary_expression "(uint)*(undefined8 *)(lVar7 + 0x70) & 5" (binary_expression "(uint)*(undefined8 *)(lVar7 + 0x70)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(lVar7 + 0x70)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x70)" (( "(") (binary_expression "lVar7 + 0x70" (identifier "lVar7") (+ "+") (number_literal "0x70")) () ")")))) (& "&") (number_literal "5")) () ")"))) () ")"))) () ")")) (compound_statement "{\n    uVar4 = FUN_001a5050(param_1,lVar7,0);\n    *(undefined4 *)(lVar7 + 0x78) = uVar4;\n  }" ({ "{") (expression_statement "uVar4 = FUN_001a5050(param_1,lVar7,0);" (assignment_expression "uVar4 = FUN_001a5050(param_1,lVar7,0)" (identifier "uVar4") (= "=") (call_expression "FUN_001a5050(param_1,lVar7,0)" (identifier "FUN_001a5050") (argument_list "(param_1,lVar7,0)" (( "(") (identifier "param_1") (, ",") (identifier "lVar7") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(lVar7 + 0x78) = uVar4;" (assignment_expression "*(undefined4 *)(lVar7 + 0x78) = uVar4" (pointer_expression "*(undefined4 *)(lVar7 + 0x78)" (* "*") (cast_expression "(undefined4 *)(lVar7 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x78)" (( "(") (binary_expression "lVar7 + 0x78" (identifier "lVar7") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(param_1 + 0x368) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x368) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x368)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x368)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x368)" (( "(") (binary_expression "param_1 + 0x368" (identifier "param_1") (+ "+") (number_literal "0x368")) () ")")))) (= "=") (number_literal "1")) (; ";")) (return_statement "return lVar7;" (return "return") (identifier "lVar7") (; ";")) (} "}")))

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

type_7 * __thiscall
gold::var_18::layout<32,var_2>
          (var_18 *this,Sized_relobj_file<32,var_2> *object,type_1 shndx,var_15 *name,
          Shdr<32,var_2> *shdr,type_1 sh_type,type_1 reloc_shndx,type_1 param_7,type_9 *off)

{
  type_1 var_4;
  type_2 *var_3;
  type_3 p_Var3;
  type_4 *pSVar4;
  type_5 var_38;
  bool var_34;
  type_6 OVar7;
  int var_26;
  char *pcVar9;
  type_7 *this_00;
  type_8 iVar10;
  type_9 oVar11;
  long var_9;
  char var_21;
  size_t __n;
  type_10 *var_11;
  type_11 *var_30;
  type_10 *this_01;
  type_11 *var_31;
  type_1 uVar18;
  type_12 uVar19;
  bool var_32;
  type_12 uVar21;
  bool var_33;
  type_11 bVar23;
  char **var_27;
  type_13 __node_gen;
  type_14 var_8;
  type_1 local_50;
  type_12 var_12 [24];
  type_10 *var_10;
  
  bVar23 = 0;
  *off = 0;
  var_34 = var_1<32,var_2>(this,object,name,shdr);
  if (!var_34) {
    return (type_7 *)0x0;
  }
  var_3 = parameters->options_;
  if (var_3 == (type_2 *)0x0) goto LAB_001ba729;
  if (((var_3->relocatable_).value == false) || (var_4 = shdr->p_->sh_flags, (var_4 & 0x200) == 0))
  {
    uVar19 = 0;
    uVar21 = (var_3->text_unlikely_segment_).value == false;
    if (!(bool)uVar21) {
      (*(object->super_Sized_relobj<32,var_2>).super_Relobj.super_Object._vptr_Object[0x10])
                ((var_5<var_6::Relobj*,var_7> *)&var_8,object,(type_5)shndx);
      var_9 = 0xe;
      var_11 = (type_10 *)".text.unlikely";
      var_10 = (type_10 *)var_8;
      do {
        this_01 = var_10;
        if (var_9 == 0) break;
        var_9 = var_9 + -1;
        this_01 = var_10 + (type_5)bVar23 * -2 + 1;
        uVar19 = (type_11)*var_11 < (type_11)*var_10;
        uVar21 = *var_11 == *var_10;
        var_11 = var_11 + (type_5)bVar23 * -2 + 1;
        var_10 = this_01;
      } while ((bool)uVar21);
      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {
        if ((type_12 *)var_8 != var_12) {
          this_01 = (type_10 *)var_8;
          var_13((void *)var_8);
        }
        var_4 = shdr->p_->sh_flags;
        if (parameters->options_ == (type_2 *)0x0) goto LAB_001ba803;
        uVar18 = var_4 & 0xfffff50f;
        if ((parameters->options_->relocatable_).value != false) {
          uVar18 = var_4 & 0xfffff58f;
        }
        pcVar9 = var_14<var_15>::var_16(&this->namepool_,".text.unlikely",true,&var_8);
        this_00 = var_17(this,pcVar9,var_8,sh_type,(type_5)uVar18,ORDER_INVALID,false)
        ;
        this_00->field_0xca = this_00->field_0xca | 0x80;
        goto LAB_001ba3f8;
      }
      if ((type_12 *)var_8 != var_12) {
        var_13((void *)var_8);
      }
    }
    this_01 = (type_10 *)&this->section_segment_map_;
    var_8 = (type_14)object;
    local_50 = shndx;
    iVar10 = std::
             _Rb_tree<std::var_5<var_6::Relobj*,var_7>,_std::var_5<const_std::var_5<var_6::Relobj*,var_7>,_gold::var_18::Unique_segment_info*>,_std::_Select1st<std::var_5<const_std::var_5<var_6::Relobj*,var_7>,_gold::var_18::Unique_segment_info*>var_19>,_std::less<std::var_5<var_6::Relobj*,var_7>var_19>,_std::allocator<std::var_5<const_std::var_5<var_6::Relobj*,var_7>,_gold::var_18::Unique_segment_info*>var_19>var_19>
             ::var_20((_Rb_tree<std::var_5<var_6::Relobj*,var_7>,_std::var_5<const_std::var_5<var_6::Relobj*,var_7>,_gold::var_18::Unique_segment_info*>,_std::_Select1st<std::var_5<const_std::var_5<var_6::Relobj*,var_7>,_gold::var_18::Unique_segment_info*>var_19>,_std::less<std::var_5<var_6::Relobj*,var_7>var_19>,_std::allocator<std::var_5<const_std::var_5<var_6::Relobj*,var_7>,_gold::var_18::Unique_segment_info*>var_19>var_19>
                     *)this_01,(var_5<var_6::Relobj*,var_7> *)&var_8);
    if ((_Rb_tree_header *)iVar10._M_node ==
        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {
      this_00 = choose_output_section
                          (this,(Relobj *)object,name,sh_type,(type_5)shdr->p_->sh_flags,true,
                           ORDER_INVALID,false,false,true);
      if (this_00 == (type_7 *)0x0) {
        return (type_7 *)0x0;
      }
    }
    else {
      var_4 = shdr->p_->sh_flags;
      if (parameters->options_ == (type_2 *)0x0) {
LAB_001ba803:
                    /* WARNING: Subroutine does not return */
        Target::abi_pagesize(this_01);
      }
      uVar18 = var_4 & 0xfffff50f;
      if ((parameters->options_->relocatable_).value != false) {
        uVar18 = var_4 & 0xfffff58f;
      }
      pcVar9 = var_14<var_15>::var_16
                         (&this->namepool_,*(char **)iVar10._M_node[1]._M_left,true,&var_8);
      this_00 = var_17(this,pcVar9,var_8,sh_type,(type_5)uVar18,ORDER_INVALID,false);
      if (-1 < (char)this_00->field_0xca) {
        this_00->field_0xca = this_00->field_0xca | 0x80;
        p_Var3 = iVar10._M_node[1]._M_left;
        this_00->extra_segment_flags_ = (uint64_t)p_Var3->_M_parent;
        this_00->segment_alignment_ = (uint64_t)p_Var3->_M_left;
      }
    }
  }
  else {
    name = var_14<char>::var_16(&this->namepool_,name,true,(type_14 *)0x0);
    this_00 = make_output_section(this,name,sh_type,(type_5)(var_4 & 0xfffff7ff),ORDER_INVALID,false)
    ;
  }
LAB_001ba3f8:
  pSVar4 = this->script_options_;
  var_21 = (pSVar4->script_sections_).saw_sections_clause_;
  var_3 = parameters->options_;
  if ((bool)var_21 != false) {
    if (var_3 == (type_2 *)0x0) goto LAB_001ba729;
    goto LAB_001ba52a;
  }
  if (var_3 == (type_2 *)0x0) {
LAB_001ba729:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  var_34 = false;
  var_33 = (var_3->relocatable_).value == false;
  if (!var_33) goto LAB_001ba620;
  var_9 = 7;
  var_30 = (type_11 *)".ctors.";
  var_31 = (type_11 *)name;
  do {
    if (var_9 == 0) break;
    var_9 = var_9 + -1;
    var_34 = *var_30 < *var_31;
    var_33 = *var_30 == *var_31;
    var_30 = var_30 + (type_5)bVar23 * -2 + 1;
    var_31 = var_31 + (type_5)bVar23 * -2 + 1;
  } while (var_33);
  var_32 = false;
  var_34 = (!var_34 && !var_33) == var_34;
  if (var_34) {
LAB_001ba4e0:
    this_00->field_0xc9 = this_00->field_0xc9 | 8;
    var_21 = (pSVar4->script_sections_).saw_sections_clause_;
    if ((var_3->text_reorder_).value == false) {
LAB_001ba75b:
      if (var_21 != '\0') goto LAB_001ba52a;
      goto LAB_001ba62e;
    }
    if ((bool)var_21 != false) goto LAB_001ba52a;
LAB_001ba504:
    var_21 = (var_3->relocatable_).value;
    if (this->section_ordering_specified_ != false) goto LAB_001ba636;
    if ((bool)var_21 == false) {
      __n = 0xe;
      pcVar9 = ".text.unlikely";
      var_27 = (char **)var_22(var_23*)::var_24;
      while (var_26 = var_25(pcVar9,name,__n), var_26 != 0) {
        var_27 = var_27 + 1;
        if (var_27 == var_28) goto LAB_001ba63e;
        pcVar9 = *var_27;
        __n = var_29(pcVar9);
      }
      this_00->field_0xc9 = this_00->field_0xc9 | 8;
      var_21 = (pSVar4->script_sections_).saw_sections_clause_;
      goto LAB_001ba75b;
    }
  }
  else {
    var_9 = 7;
    var_30 = (type_11 *)".dtors.";
    var_31 = (type_11 *)name;
    do {
      if (var_9 == 0) break;
      var_9 = var_9 + -1;
      var_32 = *var_30 < *var_31;
      var_34 = *var_30 == *var_31;
      var_30 = var_30 + (type_5)bVar23 * -2 + 1;
      var_31 = var_31 + (type_5)bVar23 * -2 + 1;
    } while (var_34);
    var_33 = false;
    var_34 = (!var_32 && !var_34) == var_32;
    if (var_34) goto LAB_001ba4e0;
    var_9 = 0xc;
    var_30 = (type_11 *)".init_array.";
    var_31 = (type_11 *)name;
    do {
      if (var_9 == 0) break;
      var_9 = var_9 + -1;
      var_33 = *var_30 < *var_31;
      var_34 = *var_30 == *var_31;
      var_30 = var_30 + (type_5)bVar23 * -2 + 1;
      var_31 = var_31 + (type_5)bVar23 * -2 + 1;
    } while (var_34);
    var_32 = false;
    var_34 = (!var_33 && !var_34) == var_33;
    if (var_34) goto LAB_001ba4e0;
    var_9 = 0xc;
    var_30 = (type_11 *)".fini_array.";
    var_31 = (type_11 *)name;
    do {
      if (var_9 == 0) break;
      var_9 = var_9 + -1;
      var_32 = *var_30 < *var_31;
      var_34 = *var_30 == *var_31;
      var_30 = var_30 + (type_5)bVar23 * -2 + 1;
      var_31 = var_31 + (type_5)bVar23 * -2 + 1;
    } while (var_34);
    if ((!var_32 && !var_34) == var_32) goto LAB_001ba4e0;
    var_34 = false;
    var_33 = (var_3->ctors_in_init_array_).value == false;
    if (!var_33) {
      var_9 = 7;
      var_30 = (type_11 *)name;
      var_31 = (type_11 *)".ctors";
      do {
        if (var_9 == 0) break;
        var_9 = var_9 + -1;
        var_34 = *var_30 < *var_31;
        var_33 = *var_30 == *var_31;
        var_30 = var_30 + (type_5)bVar23 * -2 + 1;
        var_31 = var_31 + (type_5)bVar23 * -2 + 1;
      } while (var_33);
      var_32 = false;
      var_34 = (!var_34 && !var_33) == var_34;
      if (!var_34) {
        var_9 = 7;
        var_30 = (type_11 *)name;
        var_31 = (type_11 *)".dtors";
        do {
          if (var_9 == 0) break;
          var_9 = var_9 + -1;
          var_32 = *var_30 < *var_31;
          var_34 = *var_30 == *var_31;
          var_30 = var_30 + (type_5)bVar23 * -2 + 1;
          var_31 = var_31 + (type_5)bVar23 * -2 + 1;
        } while (var_34);
        if ((!var_32 && !var_34) != var_32) goto LAB_001ba620;
      }
      goto LAB_001ba4e0;
    }
LAB_001ba620:
    if ((var_3->text_reorder_).value != false) goto LAB_001ba504;
LAB_001ba62e:
    var_21 = (var_3->relocatable_).value;
LAB_001ba636:
    if (var_21 == '\0') {
LAB_001ba63e:
      var_4 = shdr->p_->sh_size;
      var_34 = var_4 < 4;
      var_33 = var_4 == 4;
      if (4 < var_4) {
        var_9 = 7;
        var_30 = (type_11 *)name;
        var_31 = (type_11 *)".ctors";
        do {
          if (var_9 == 0) break;
          var_9 = var_9 + -1;
          var_34 = *var_30 < *var_31;
          var_33 = *var_30 == *var_31;
          var_30 = var_30 + (type_5)bVar23 * -2 + 1;
          var_31 = var_31 + (type_5)bVar23 * -2 + 1;
        } while (var_33);
        var_32 = false;
        var_34 = (!var_34 && !var_33) == var_34;
        if (var_34) {
LAB_001ba680:
          var_33 = false;
          var_9 = 0xc;
          var_30 = (type_11 *)this_00->name_;
          var_31 = (type_11 *)".init_array";
          do {
            if (var_9 == 0) break;
            var_9 = var_9 + -1;
            var_33 = *var_30 < *var_31;
            var_34 = *var_30 == *var_31;
            var_30 = var_30 + (type_5)bVar23 * -2 + 1;
            var_31 = var_31 + (type_5)bVar23 * -2 + 1;
          } while (var_34);
          var_34 = (!var_33 && !var_34) == var_33;
          if (!var_34) goto LAB_001ba6e0;
        }
        else {
          var_9 = 7;
          var_30 = (type_11 *)".ctors.";
          var_31 = (type_11 *)name;
          do {
            if (var_9 == 0) break;
            var_9 = var_9 + -1;
            var_32 = *var_30 < *var_31;
            var_34 = *var_30 == *var_31;
            var_30 = var_30 + (type_5)bVar23 * -2 + 1;
            var_31 = var_31 + (type_5)bVar23 * -2 + 1;
          } while (var_34);
          var_34 = (!var_32 && !var_34) == var_32;
          if (var_34) goto LAB_001ba680;
LAB_001ba6e0:
          var_33 = false;
          var_9 = 7;
          var_30 = (type_11 *)name;
          var_31 = (type_11 *)".dtors";
          do {
            if (var_9 == 0) break;
            var_9 = var_9 + -1;
            var_33 = *var_30 < *var_31;
            var_34 = *var_30 == *var_31;
            var_30 = var_30 + (type_5)bVar23 * -2 + 1;
            var_31 = var_31 + (type_5)bVar23 * -2 + 1;
          } while (var_34);
          var_32 = false;
          var_34 = (!var_33 && !var_34) == var_33;
          if (!var_34) {
            var_9 = 7;
            var_30 = (type_11 *)".dtors.";
            var_31 = (type_11 *)name;
            do {
              if (var_9 == 0) break;
              var_9 = var_9 + -1;
              var_32 = *var_30 < *var_31;
              var_34 = *var_30 == *var_31;
              var_30 = var_30 + (type_5)bVar23 * -2 + 1;
              var_31 = var_31 + (type_5)bVar23 * -2 + 1;
            } while (var_34);
            var_34 = (!var_32 && !var_34) == var_32;
            if (!var_34) goto LAB_001ba528;
          }
          var_33 = false;
          var_9 = 0xc;
          var_30 = (type_11 *)this_00->name_;
          var_31 = (type_11 *)".fini_array";
          do {
            if (var_9 == 0) break;
            var_9 = var_9 + -1;
            var_33 = *var_30 < *var_31;
            var_34 = *var_30 == *var_31;
            var_30 = var_30 + (type_5)bVar23 * -2 + 1;
            var_31 = var_31 + (type_5)bVar23 * -2 + 1;
          } while (var_34);
          if ((!var_33 && !var_34) != var_33) goto LAB_001ba528;
        }
        __node_gen._M_h = (type_15 *)&var_37;
        var_8 = (type_14)object;
        local_50 = shndx;
        std::
        _Hashtable<std::var_5<gold::Relobj*,var_7>,_std::var_5<gold::Relobj*,var_7>,_std::allocator<std::var_5<gold::Relobj*,var_7>var_19>,_std::__detail::_Identity,_std::equal_to<std::var_5<gold::Relobj*,var_7>var_19>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_36<true,var_35,var_35>var_19>
        ::
        _M_insert<std::var_5<gold::Relobj*,var_7>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::var_5<gold::Relobj*,var_7>,var_35>var_19>var_19>var_19>
                  ((_Hashtable<std::var_5<gold::Relobj*,var_7>,_std::var_5<gold::Relobj*,var_7>,_std::allocator<std::var_5<gold::Relobj*,var_7>var_19>,_std::__detail::_Identity,_std::equal_to<std::var_5<gold::Relobj*,var_7>var_19>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_36<true,var_35,var_35>var_19>
                    *)&var_37,&var_8,&__node_gen,1);
        var_21 = (this->script_options_->script_sections_).saw_sections_clause_;
        goto LAB_001ba52a;
      }
    }
  }
LAB_001ba528:
  var_21 = false;
LAB_001ba52a:
  var_38 = this_00->flags_;
  oVar11 = type_7::add_input_section<32,var_2>
                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)var_21);
  *off = oVar11;
  if (((var_38 & 2) != 0) && (((type_1)var_38 & 5) != ((type_1)this_00->flags_ & 5))) {
    OVar7 = var_39(this,this_00,false);
    this_00->order_ = OVar7;
  }
  this->have_added_input_section_ = true;
  return this_00;
}


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

long MASKED(long param_1,byte *param_2,undefined4 param_3,byte *param_4,long *param_5,
                 undefined4 param_6,undefined4 param_7,undefined8 param_8,undefined8 *param_9)

{
  long lVar1;
  ulong uVar2;
  char cVar3;
  undefined4 uVar4;
  int iVar5;
  undefined8 uVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  char *__s1;
  size_t __n;
  byte *pbVar10;
  byte *pbVar11;
  uint uVar12;
  uint uVar13;
  undefined1 uVar14;
  bool bVar15;
  bool bVar16;
  undefined1 uVar17;
  bool bVar18;
  byte bVar19;
  undefined **local_80;
  undefined *local_60;
  byte *local_58;
  undefined4 local_50;
  byte local_48 [24];
  
  bVar19 = 0;
  *param_9 = 0;
  cVar3 = FUN_001b3220(param_1,param_2,param_4,param_5);
  if (cVar3 == '\0') {
    return 0;
  }
  lVar7 = *(long *)(PTR_DAT_0043e6b0 + 0x10);
  if (lVar7 == 0) goto LAB_001ba729;
  if ((*(char *)(lVar7 + 0x5051) == '\0') ||
     (uVar12 = *(uint *)(*param_5 + 8), (uVar12 & 0x200) == 0)) {
    uVar14 = 0;
    uVar17 = *(char *)(lVar7 + 0x8f19) == '\0';
    if (!(bool)uVar17) {
      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);
      lVar7 = 0xe;
      pbVar10 = (byte *)".text.unlikely";
      pbVar11 = local_58;
      do {
        if (lVar7 == 0) break;
        lVar7 = lVar7 + -1;
        uVar14 = *pbVar10 < *pbVar11;
        uVar17 = *pbVar10 == *pbVar11;
        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
      } while ((bool)uVar17);
      if ((!(bool)uVar14 && !(bool)uVar17) == (bool)uVar14) {
        if (local_58 != local_48) {
          FUN_002dac60(local_58);
        }
        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001ba803;
        uVar12 = *(uint *)(*param_5 + 8) & 0xfffff50f;
        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {
          uVar12 = *(uint *)(*param_5 + 8) & 0xfffff58f;
        }
        uVar6 = FUN_0026e690(param_1 + 0x10,".text.unlikely",1,&local_58);
        lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar12,0,0);
        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;
        goto LAB_001ba3f8;
      }
      if (local_58 != local_48) {
        FUN_002dac60(local_58);
      }
    }
    local_58 = param_2;
    local_50 = param_3;
    lVar9 = FUN_001b4c30(param_1 + 0x3e0,&local_58);
    if (lVar9 == param_1 + 1000) {
      lVar7 = FUN_001acf30(param_1,param_2,param_4,param_6,*(undefined4 *)(*param_5 + 8),1,0,0,0,1);
      if (lVar7 == 0) {
        return 0;
      }
    }
    else {
      uVar12 = *(uint *)(*param_5 + 8);
      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {
LAB_001ba803:
                    /* WARNING: Subroutine does not return */
        FUN_001a4340();
      }
      uVar13 = uVar12 & 0xfffff50f;
      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {
        uVar13 = uVar12 & 0xfffff58f;
      }
      uVar6 = FUN_0026e690(param_1 + 0x10,**(undefined8 **)(lVar9 + 0x30),1,&local_58);
      lVar7 = FUN_001acd20(param_1,uVar6,local_58,param_6,uVar13,0,0);
      if (-1 < (char)*(byte *)(lVar7 + 0xca)) {
        *(byte *)(lVar7 + 0xca) = *(byte *)(lVar7 + 0xca) | 0x80;
        lVar9 = *(long *)(lVar9 + 0x30);
        *(undefined8 *)(lVar7 + 0xd8) = *(undefined8 *)(lVar9 + 8);
        *(undefined8 *)(lVar7 + 0xe0) = *(undefined8 *)(lVar9 + 0x10);
      }
    }
  }
  else {
    param_4 = (byte *)FUN_0026e690(param_1 + 0x10,param_4,1,0);
    lVar7 = FUN_001a8f30(param_1,param_4,param_6,uVar12 & 0xfffff7ff,0,0);
  }
LAB_001ba3f8:
  lVar9 = *(long *)(param_1 + 8);
  cVar3 = *(char *)(lVar9 + 0x148);
  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);
  if (cVar3 != '\0') {
    if (lVar1 == 0) goto LAB_001ba729;
    goto LAB_001ba52a;
  }
  if (lVar1 == 0) {
LAB_001ba729:
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/parameters.h",0x5c,"options");
  }
  bVar15 = false;
  bVar18 = *(char *)(lVar1 + 0x5051) == '\0';
  if (!bVar18) goto LAB_001ba620;
  lVar8 = 7;
  pbVar10 = (byte *)".ctors.";
  pbVar11 = param_4;
  do {
    if (lVar8 == 0) break;
    lVar8 = lVar8 + -1;
    bVar15 = *pbVar10 < *pbVar11;
    bVar18 = *pbVar10 == *pbVar11;
    pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
    pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
  } while (bVar18);
  bVar16 = false;
  bVar15 = (!bVar15 && !bVar18) == bVar15;
  if (bVar15) {
LAB_001ba4e0:
    *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;
    cVar3 = *(char *)(lVar9 + 0x148);
    if (*(char *)(lVar1 + 0x62b9) == '\0') {
LAB_001ba75b:
      if (cVar3 != '\0') goto LAB_001ba52a;
      goto LAB_001ba62e;
    }
    if (cVar3 != '\0') goto LAB_001ba52a;
LAB_001ba504:
    cVar3 = *(char *)(lVar1 + 0x5051);
    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001ba636;
    if (cVar3 == '\0') {
      __n = 0xe;
      __s1 = ".text.unlikely";
      local_80 = &PTR_s__text_unlikely_00427ee0;
      while (iVar5 = strncmp(__s1,(char *)param_4,__n), iVar5 != 0) {
        local_80 = local_80 + 1;
        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001ba63e;
        __s1 = *local_80;
        __n = strlen(__s1);
      }
      *(byte *)(lVar7 + 0xc9) = *(byte *)(lVar7 + 0xc9) | 8;
      cVar3 = *(char *)(lVar9 + 0x148);
      goto LAB_001ba75b;
    }
  }
  else {
    lVar8 = 7;
    pbVar10 = (byte *)".dtors.";
    pbVar11 = param_4;
    do {
      if (lVar8 == 0) break;
      lVar8 = lVar8 + -1;
      bVar16 = *pbVar10 < *pbVar11;
      bVar15 = *pbVar10 == *pbVar11;
      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
    } while (bVar15);
    bVar18 = false;
    bVar15 = (!bVar16 && !bVar15) == bVar16;
    if (bVar15) goto LAB_001ba4e0;
    lVar8 = 0xc;
    pbVar10 = (byte *)".init_array.";
    pbVar11 = param_4;
    do {
      if (lVar8 == 0) break;
      lVar8 = lVar8 + -1;
      bVar18 = *pbVar10 < *pbVar11;
      bVar15 = *pbVar10 == *pbVar11;
      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
    } while (bVar15);
    bVar16 = false;
    bVar15 = (!bVar18 && !bVar15) == bVar18;
    if (bVar15) goto LAB_001ba4e0;
    lVar8 = 0xc;
    pbVar10 = (byte *)".fini_array.";
    pbVar11 = param_4;
    do {
      if (lVar8 == 0) break;
      lVar8 = lVar8 + -1;
      bVar16 = *pbVar10 < *pbVar11;
      bVar15 = *pbVar10 == *pbVar11;
      pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
      pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
    } while (bVar15);
    if ((!bVar16 && !bVar15) == bVar16) goto LAB_001ba4e0;
    bVar15 = false;
    bVar18 = *(char *)(lVar1 + 0x1179) == '\0';
    if (!bVar18) {
      lVar8 = 7;
      pbVar10 = param_4;
      pbVar11 = (byte *)".ctors";
      do {
        if (lVar8 == 0) break;
        lVar8 = lVar8 + -1;
        bVar15 = *pbVar10 < *pbVar11;
        bVar18 = *pbVar10 == *pbVar11;
        pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
        pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
      } while (bVar18);
      bVar16 = false;
      bVar15 = (!bVar15 && !bVar18) == bVar15;
      if (!bVar15) {
        lVar8 = 7;
        pbVar10 = param_4;
        pbVar11 = (byte *)".dtors";
        do {
          if (lVar8 == 0) break;
          lVar8 = lVar8 + -1;
          bVar16 = *pbVar10 < *pbVar11;
          bVar15 = *pbVar10 == *pbVar11;
          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
        } while (bVar15);
        if ((!bVar16 && !bVar15) != bVar16) goto LAB_001ba620;
      }
      goto LAB_001ba4e0;
    }
LAB_001ba620:
    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001ba504;
LAB_001ba62e:
    cVar3 = *(char *)(lVar1 + 0x5051);
LAB_001ba636:
    if (cVar3 == '\0') {
LAB_001ba63e:
      uVar12 = *(uint *)(*param_5 + 0x14);
      bVar15 = uVar12 < 4;
      bVar18 = uVar12 == 4;
      if (4 < uVar12) {
        lVar9 = 7;
        pbVar10 = param_4;
        pbVar11 = (byte *)".ctors";
        do {
          if (lVar9 == 0) break;
          lVar9 = lVar9 + -1;
          bVar15 = *pbVar10 < *pbVar11;
          bVar18 = *pbVar10 == *pbVar11;
          pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
          pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
        } while (bVar18);
        bVar16 = false;
        bVar15 = (!bVar15 && !bVar18) == bVar15;
        if (bVar15) {
LAB_001ba680:
          bVar18 = false;
          lVar9 = 0xc;
          pbVar10 = *(byte **)(lVar7 + 0x28);
          pbVar11 = (byte *)".init_array";
          do {
            if (lVar9 == 0) break;
            lVar9 = lVar9 + -1;
            bVar18 = *pbVar10 < *pbVar11;
            bVar15 = *pbVar10 == *pbVar11;
            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
          } while (bVar15);
          bVar15 = (!bVar18 && !bVar15) == bVar18;
          if (!bVar15) goto LAB_001ba6e0;
        }
        else {
          lVar9 = 7;
          pbVar10 = (byte *)".ctors.";
          pbVar11 = param_4;
          do {
            if (lVar9 == 0) break;
            lVar9 = lVar9 + -1;
            bVar16 = *pbVar10 < *pbVar11;
            bVar15 = *pbVar10 == *pbVar11;
            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
          } while (bVar15);
          bVar15 = (!bVar16 && !bVar15) == bVar16;
          if (bVar15) goto LAB_001ba680;
LAB_001ba6e0:
          bVar18 = false;
          lVar9 = 7;
          pbVar10 = param_4;
          pbVar11 = (byte *)".dtors";
          do {
            if (lVar9 == 0) break;
            lVar9 = lVar9 + -1;
            bVar18 = *pbVar10 < *pbVar11;
            bVar15 = *pbVar10 == *pbVar11;
            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
          } while (bVar15);
          bVar16 = false;
          bVar15 = (!bVar18 && !bVar15) == bVar18;
          if (!bVar15) {
            lVar9 = 7;
            pbVar10 = (byte *)".dtors.";
            pbVar11 = param_4;
            do {
              if (lVar9 == 0) break;
              lVar9 = lVar9 + -1;
              bVar16 = *pbVar10 < *pbVar11;
              bVar15 = *pbVar10 == *pbVar11;
              pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
              pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
            } while (bVar15);
            bVar15 = (!bVar16 && !bVar15) == bVar16;
            if (!bVar15) goto LAB_001ba528;
          }
          bVar18 = false;
          lVar9 = 0xc;
          pbVar10 = *(byte **)(lVar7 + 0x28);
          pbVar11 = (byte *)".fini_array";
          do {
            if (lVar9 == 0) break;
            lVar9 = lVar9 + -1;
            bVar18 = *pbVar10 < *pbVar11;
            bVar15 = *pbVar10 == *pbVar11;
            pbVar10 = pbVar10 + (ulong)bVar19 * -2 + 1;
            pbVar11 = pbVar11 + (ulong)bVar19 * -2 + 1;
          } while (bVar15);
          if ((!bVar18 && !bVar15) != bVar18) goto LAB_001ba528;
        }
        local_60 = &DAT_0043e980;
        local_58 = param_2;
        local_50 = param_3;
        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);
        cVar3 = *(char *)(*(long *)(param_1 + 8) + 0x148);
        goto LAB_001ba52a;
      }
    }
  }
LAB_001ba528:
  cVar3 = '\0';
LAB_001ba52a:
  uVar2 = *(ulong *)(lVar7 + 0x70);
  uVar6 = FUN_00226940(lVar7,param_1,param_2,param_3,param_4,param_5,param_7,cVar3);
  *param_9 = uVar6;
  if (((uVar2 & 2) != 0) && (((uint)uVar2 & 5) != ((uint)*(undefined8 *)(lVar7 + 0x70) & 5))) {
    uVar4 = FUN_001a5050(param_1,lVar7,0);
    *(undefined4 *)(lVar7 + 0x78) = uVar4;
  }
  *(undefined1 *)(param_1 + 0x368) = 1;
  return lVar7;
}

