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

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

{
  General_options *pGVar1;
  Elf_WXword EVar2;
  _Base_ptr p_Var3;
  Script_options *pSVar4;
  uint uVar5;
  uint uVar6;
  bool bVar7;
  Output_section_order OVar8;
  int iVar9;
  char *pcVar10;
  Output_section *this_00;
  iterator iVar11;
  off_t oVar12;
  ulong uVar13;
  long lVar14;
  char cVar15;
  size_t __n;
  Target *pTVar16;
  byte *pbVar17;
  Target *this_01;
  byte *pbVar19;
  undefined1 uVar20;
  bool bVar21;
  undefined1 uVar22;
  bool bVar23;
  byte bVar24;
  char **local_80;
  __node_gen_type __node_gen;
  Key name_key;
  uint local_50;
  undefined1 local_48 [24];
  Target *pTVar18;
  
  bVar24 = 0;
  *off = 0;
  bVar7 = include_section<64,_true>(this,object,name,shdr);
  if (!bVar7) {
    return (Output_section *)0x0;
  }
  pGVar1 = parameters->options_;
  if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;
  if ((pGVar1->relocatable_).value == false) {
LAB_001bb56b:
    uVar20 = 0;
    uVar22 = (pGVar1->text_unlikely_segment_).value == false;
    if (!(bool)uVar22) {
      (*(object->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object[0x10])
                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);
      lVar14 = 0xe;
      pTVar16 = (Target *)".text.unlikely";
      pTVar18 = (Target *)name_key;
      do {
        this_01 = pTVar18;
        if (lVar14 == 0) break;
        lVar14 = lVar14 + -1;
        this_01 = pTVar18 + (ulong)bVar24 * -2 + 1;
        uVar20 = (byte)*pTVar16 < (byte)*pTVar18;
        uVar22 = *pTVar16 == *pTVar18;
        pTVar16 = pTVar16 + (ulong)bVar24 * -2 + 1;
        pTVar18 = this_01;
      } while ((bool)uVar22);
      if ((!(bool)uVar20 && !(bool)uVar22) == (bool)uVar20) {
        if ((undefined1 *)name_key != local_48) {
          this_01 = (Target *)name_key;
          operator_delete((void *)name_key);
        }
        EVar2 = shdr->p_->sh_flags;
        uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;
        if (parameters->options_ == (General_options *)0x0) goto LAB_001bbb53;
        uVar6 = uVar5 & 0xfffff50f;
        if ((parameters->options_->relocatable_).value != false) {
          uVar6 = uVar5 & 0xfffff58f;
        }
        pcVar10 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);
        this_00 = get_output_section(this,pcVar10,name_key,sh_type,
                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |
                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);
        this_00->field_0xca = this_00->field_0xca | 0x80;
        goto LAB_001bb748;
      }
      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;
    iVar11 = 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 *)iVar11._M_node ==
        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {
      uVar13 = shdr->p_->sh_flags;
      this_00 = choose_output_section
                          (this,(Relobj *)object,name,sh_type,
                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |
                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |
                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |
                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false
                           ,true);
      if (this_00 == (Output_section *)0x0) {
        return (Output_section *)0x0;
      }
    }
    else {
      EVar2 = shdr->p_->sh_flags;
      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;
      if (parameters->options_ == (General_options *)0x0) {
LAB_001bbb53:
                    /* WARNING: Subroutine does not return */
        Target::abi_pagesize(this_01);
      }
      uVar6 = uVar5 & 0xfffff50f;
      if ((parameters->options_->relocatable_).value != false) {
        uVar6 = uVar5 & 0xfffff58f;
      }
      pcVar10 = Stringpool_template<char>::add
                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);
      this_00 = get_output_section(this,pcVar10,name_key,sh_type,
                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |
                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);
      if (-1 < (char)this_00->field_0xca) {
        this_00->field_0xca = this_00->field_0xca | 0x80;
        p_Var3 = iVar11._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 {
    uVar13 = shdr->p_->sh_flags;
    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;
    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);
    this_00 = make_output_section(this,name,sh_type,
                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |
                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |
                                          (uint)(uVar13 >> 0x18) & 0xff0000 |
                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);
  }
LAB_001bb748:
  pSVar4 = this->script_options_;
  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;
  pGVar1 = parameters->options_;
  if ((bool)cVar15 != false) {
    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;
    goto LAB_001bb87a;
  }
  if (pGVar1 == (General_options *)0x0) {
LAB_001bba79:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  bVar7 = false;
  bVar23 = (pGVar1->relocatable_).value == false;
  if (!bVar23) goto LAB_001bb970;
  lVar14 = 7;
  pbVar17 = (byte *)".ctors.";
  pbVar19 = (byte *)name;
  do {
    if (lVar14 == 0) break;
    lVar14 = lVar14 + -1;
    bVar7 = *pbVar17 < *pbVar19;
    bVar23 = *pbVar17 == *pbVar19;
    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;
  } while (bVar23);
  bVar21 = false;
  bVar7 = (!bVar7 && !bVar23) == bVar7;
  if (bVar7) {
LAB_001bb830:
    this_00->field_0xc9 = this_00->field_0xc9 | 8;
    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;
    if ((pGVar1->text_reorder_).value == false) {
LAB_001bbaab:
      if (cVar15 != '\0') goto LAB_001bb87a;
      goto LAB_001bb97e;
    }
    if ((bool)cVar15 != false) goto LAB_001bb87a;
LAB_001bb854:
    cVar15 = (pGVar1->relocatable_).value;
    if (this->section_ordering_specified_ != false) goto LAB_001bb986;
    if ((bool)cVar15 == false) {
      __n = 0xe;
      pcVar10 = ".text.unlikely";
      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;
      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {
        local_80 = local_80 + 1;
        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;
        pcVar10 = *local_80;
        __n = strlen(pcVar10);
      }
      this_00->field_0xc9 = this_00->field_0xc9 | 8;
      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;
      goto LAB_001bbaab;
    }
  }
  else {
    lVar14 = 7;
    pbVar17 = (byte *)".dtors.";
    pbVar19 = (byte *)name;
    do {
      if (lVar14 == 0) break;
      lVar14 = lVar14 + -1;
      bVar21 = *pbVar17 < *pbVar19;
      bVar7 = *pbVar17 == *pbVar19;
      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;
    } while (bVar7);
    bVar23 = false;
    bVar7 = (!bVar21 && !bVar7) == bVar21;
    if (bVar7) goto LAB_001bb830;
    lVar14 = 0xc;
    pbVar17 = (byte *)".init_array.";
    pbVar19 = (byte *)name;
    do {
      if (lVar14 == 0) break;
      lVar14 = lVar14 + -1;
      bVar23 = *pbVar17 < *pbVar19;
      bVar7 = *pbVar17 == *pbVar19;
      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;
    } while (bVar7);
    bVar21 = false;
    bVar7 = (!bVar23 && !bVar7) == bVar23;
    if (bVar7) goto LAB_001bb830;
    lVar14 = 0xc;
    pbVar17 = (byte *)".fini_array.";
    pbVar19 = (byte *)name;
    do {
      if (lVar14 == 0) break;
      lVar14 = lVar14 + -1;
      bVar21 = *pbVar17 < *pbVar19;
      bVar7 = *pbVar17 == *pbVar19;
      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;
    } while (bVar7);
    if ((!bVar21 && !bVar7) == bVar21) goto LAB_001bb830;
    bVar7 = false;
    bVar23 = (pGVar1->ctors_in_init_array_).value == false;
    if (!bVar23) {
      lVar14 = 7;
      pbVar17 = (byte *)name;
      pbVar19 = (byte *)".ctors";
      do {
        if (lVar14 == 0) break;
        lVar14 = lVar14 + -1;
        bVar7 = *pbVar17 < *pbVar19;
        bVar23 = *pbVar17 == *pbVar19;
        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
        pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;
      } while (bVar23);
      bVar21 = false;
      bVar7 = (!bVar7 && !bVar23) == bVar7;
      if (!bVar7) {
        lVar14 = 7;
        pbVar17 = (byte *)name;
        pbVar19 = (byte *)".dtors";
        do {
          if (lVar14 == 0) break;
          lVar14 = lVar14 + -1;
          bVar21 = *pbVar17 < *pbVar19;
          bVar7 = *pbVar17 == *pbVar19;
          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;
        } while (bVar7);
        if ((!bVar21 && !bVar7) != bVar21) goto LAB_001bb970;
      }
      goto LAB_001bb830;
    }
LAB_001bb970:
    if ((pGVar1->text_reorder_).value != false) goto LAB_001bb854;
LAB_001bb97e:
    cVar15 = (pGVar1->relocatable_).value;
LAB_001bb986:
    if (cVar15 == '\0') {
LAB_001bb98e:
      uVar13 = shdr->p_->sh_size;
      uVar13 = uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |
               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |
               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 | (uVar13 & 0xff00) << 0x28
               | uVar13 << 0x38;
      bVar7 = uVar13 < 8;
      bVar23 = uVar13 == 8;
      if (8 < uVar13) {
        lVar14 = 7;
        pbVar17 = (byte *)name;
        pbVar19 = (byte *)".ctors";
        do {
          if (lVar14 == 0) break;
          lVar14 = lVar14 + -1;
          bVar7 = *pbVar17 < *pbVar19;
          bVar23 = *pbVar17 == *pbVar19;
          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;
        } while (bVar23);
        bVar21 = false;
        bVar7 = (!bVar7 && !bVar23) == bVar7;
        if (bVar7) {
LAB_001bb9d7:
          bVar23 = false;
          lVar14 = 0xc;
          pbVar17 = (byte *)this_00->name_;
          pbVar19 = (byte *)".init_array";
          do {
            if (lVar14 == 0) break;
            lVar14 = lVar14 + -1;
            bVar23 = *pbVar17 < *pbVar19;
            bVar7 = *pbVar17 == *pbVar19;
            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;
          } while (bVar7);
          bVar7 = (!bVar23 && !bVar7) == bVar23;
          if (!bVar7) goto LAB_001bba30;
        }
        else {
          lVar14 = 7;
          pbVar17 = (byte *)".ctors.";
          pbVar19 = (byte *)name;
          do {
            if (lVar14 == 0) break;
            lVar14 = lVar14 + -1;
            bVar21 = *pbVar17 < *pbVar19;
            bVar7 = *pbVar17 == *pbVar19;
            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;
          } while (bVar7);
          bVar7 = (!bVar21 && !bVar7) == bVar21;
          if (bVar7) goto LAB_001bb9d7;
LAB_001bba30:
          bVar23 = false;
          lVar14 = 7;
          pbVar17 = (byte *)name;
          pbVar19 = (byte *)".dtors";
          do {
            if (lVar14 == 0) break;
            lVar14 = lVar14 + -1;
            bVar23 = *pbVar17 < *pbVar19;
            bVar7 = *pbVar17 == *pbVar19;
            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;
          } while (bVar7);
          bVar21 = false;
          bVar7 = (!bVar23 && !bVar7) == bVar23;
          if (!bVar7) {
            lVar14 = 7;
            pbVar17 = (byte *)".dtors.";
            pbVar19 = (byte *)name;
            do {
              if (lVar14 == 0) break;
              lVar14 = lVar14 + -1;
              bVar21 = *pbVar17 < *pbVar19;
              bVar7 = *pbVar17 == *pbVar19;
              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;
            } while (bVar7);
            bVar7 = (!bVar21 && !bVar7) == bVar21;
            if (!bVar7) goto LAB_001bb878;
          }
          bVar23 = false;
          lVar14 = 0xc;
          pbVar17 = (byte *)this_00->name_;
          pbVar19 = (byte *)".fini_array";
          do {
            if (lVar14 == 0) break;
            lVar14 = lVar14 + -1;
            bVar23 = *pbVar17 < *pbVar19;
            bVar7 = *pbVar17 == *pbVar19;
            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;
            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;
          } while (bVar7);
          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;
        }
        __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);
        cVar15 = (this->script_options_->script_sections_).saw_sections_clause_;
        goto LAB_001bb87a;
      }
    }
  }
LAB_001bb878:
  cVar15 = false;
LAB_001bb87a:
  uVar13 = this_00->flags_;
  oVar12 = Output_section::add_input_section<64,_true>
                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar15);
  *off = oVar12;
  if (((uVar13 & 2) != 0) && (((uint)uVar13 & 5) != ((uint)this_00->flags_ & 5))) {
    OVar8 = default_section_order(this,this_00,false);
    this_00->order_ = OVar8;
  }
  this->have_added_input_section_ = true;
  return this_00;
}



long FUN_001bb4f0(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;
  uint uVar2;
  uint uVar3;
  char cVar4;
  undefined4 uVar5;
  int iVar6;
  undefined8 uVar7;
  undefined8 uVar8;
  ulong uVar9;
  long lVar10;
  long lVar11;
  long lVar12;
  char *__s1;
  size_t __n;
  byte *pbVar13;
  byte *pbVar14;
  undefined1 uVar15;
  bool bVar16;
  bool bVar17;
  undefined1 uVar18;
  bool bVar19;
  byte bVar20;
  undefined **local_80;
  undefined *local_60;
  byte *local_58;
  undefined4 local_50;
  byte local_48 [24];
  
  bVar20 = 0;
  *param_9 = 0;
  cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);
  if (cVar4 == '\0') {
    return 0;
  }
  lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);
  if (lVar10 == 0) goto LAB_001bba79;
  if (*(char *)(lVar10 + 0x5051) == '\0') {
LAB_001bb56b:
    uVar15 = 0;
    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';
    if (!(bool)uVar18) {
      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);
      lVar10 = 0xe;
      pbVar13 = (byte *)".text.unlikely";
      pbVar14 = local_58;
      do {
        if (lVar10 == 0) break;
        lVar10 = lVar10 + -1;
        uVar15 = *pbVar13 < *pbVar14;
        uVar18 = *pbVar13 == *pbVar14;
        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
      } while ((bool)uVar18);
      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {
        if (local_58 != local_48) {
          FUN_002dac70(local_58);
        }
        uVar8 = *(undefined8 *)(*param_5 + 8);
        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;
        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;
        uVar3 = uVar2 & 0xfffff50f;
        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {
          uVar3 = uVar2 & 0xfffff58f;
        }
        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);
        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,
                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |
                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);
        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;
        goto LAB_001bb748;
      }
      if (local_58 != local_48) {
        FUN_002dac70(local_58);
      }
    }
    local_58 = param_2;
    local_50 = param_3;
    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);
    if (lVar12 == param_1 + 1000) {
      uVar9 = *(ulong *)(*param_5 + 8);
      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,
                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |
                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |
                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |
                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);
      if (lVar10 == 0) {
        return 0;
      }
    }
    else {
      uVar8 = *(undefined8 *)(*param_5 + 8);
      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;
      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {
LAB_001bbb53:
                    /* WARNING: Subroutine does not return */
        FUN_001a4340();
      }
      uVar3 = uVar2 & 0xfffff50f;
      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {
        uVar3 = uVar2 & 0xfffff58f;
      }
      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);
      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,
                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |
                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);
      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {
        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;
        lVar12 = *(long *)(lVar12 + 0x30);
        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);
        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);
      }
    }
  }
  else {
    uVar9 = *(ulong *)(*param_5 + 8);
    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;
    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);
    lVar10 = FUN_001a8f30(param_1,param_4,param_6,
                          (uint)(byte)(uVar9 >> 0x38) |
                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |
                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);
  }
LAB_001bb748:
  lVar12 = *(long *)(param_1 + 8);
  cVar4 = *(char *)(lVar12 + 0x148);
  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);
  if (cVar4 != '\0') {
    if (lVar1 == 0) goto LAB_001bba79;
    goto LAB_001bb87a;
  }
  if (lVar1 == 0) {
LAB_001bba79:
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/parameters.h",0x5c,"options");
  }
  bVar16 = false;
  bVar19 = *(char *)(lVar1 + 0x5051) == '\0';
  if (!bVar19) goto LAB_001bb970;
  lVar11 = 7;
  pbVar13 = (byte *)".ctors.";
  pbVar14 = param_4;
  do {
    if (lVar11 == 0) break;
    lVar11 = lVar11 + -1;
    bVar16 = *pbVar13 < *pbVar14;
    bVar19 = *pbVar13 == *pbVar14;
    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
  } while (bVar19);
  bVar17 = false;
  bVar16 = (!bVar16 && !bVar19) == bVar16;
  if (bVar16) {
LAB_001bb830:
    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;
    cVar4 = *(char *)(lVar12 + 0x148);
    if (*(char *)(lVar1 + 0x62b9) == '\0') {
LAB_001bbaab:
      if (cVar4 != '\0') goto LAB_001bb87a;
      goto LAB_001bb97e;
    }
    if (cVar4 != '\0') goto LAB_001bb87a;
LAB_001bb854:
    cVar4 = *(char *)(lVar1 + 0x5051);
    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;
    if (cVar4 == '\0') {
      __n = 0xe;
      __s1 = ".text.unlikely";
      local_80 = &PTR_s__text_unlikely_00427ee0;
      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {
        local_80 = local_80 + 1;
        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;
        __s1 = *local_80;
        __n = strlen(__s1);
      }
      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;
      cVar4 = *(char *)(lVar12 + 0x148);
      goto LAB_001bbaab;
    }
  }
  else {
    lVar11 = 7;
    pbVar13 = (byte *)".dtors.";
    pbVar14 = param_4;
    do {
      if (lVar11 == 0) break;
      lVar11 = lVar11 + -1;
      bVar17 = *pbVar13 < *pbVar14;
      bVar16 = *pbVar13 == *pbVar14;
      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
    } while (bVar16);
    bVar19 = false;
    bVar16 = (!bVar17 && !bVar16) == bVar17;
    if (bVar16) goto LAB_001bb830;
    lVar11 = 0xc;
    pbVar13 = (byte *)".init_array.";
    pbVar14 = param_4;
    do {
      if (lVar11 == 0) break;
      lVar11 = lVar11 + -1;
      bVar19 = *pbVar13 < *pbVar14;
      bVar16 = *pbVar13 == *pbVar14;
      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
    } while (bVar16);
    bVar17 = false;
    bVar16 = (!bVar19 && !bVar16) == bVar19;
    if (bVar16) goto LAB_001bb830;
    lVar11 = 0xc;
    pbVar13 = (byte *)".fini_array.";
    pbVar14 = param_4;
    do {
      if (lVar11 == 0) break;
      lVar11 = lVar11 + -1;
      bVar17 = *pbVar13 < *pbVar14;
      bVar16 = *pbVar13 == *pbVar14;
      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
    } while (bVar16);
    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;
    bVar16 = false;
    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';
    if (!bVar19) {
      lVar11 = 7;
      pbVar13 = param_4;
      pbVar14 = (byte *)".ctors";
      do {
        if (lVar11 == 0) break;
        lVar11 = lVar11 + -1;
        bVar16 = *pbVar13 < *pbVar14;
        bVar19 = *pbVar13 == *pbVar14;
        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
      } while (bVar19);
      bVar17 = false;
      bVar16 = (!bVar16 && !bVar19) == bVar16;
      if (!bVar16) {
        lVar11 = 7;
        pbVar13 = param_4;
        pbVar14 = (byte *)".dtors";
        do {
          if (lVar11 == 0) break;
          lVar11 = lVar11 + -1;
          bVar17 = *pbVar13 < *pbVar14;
          bVar16 = *pbVar13 == *pbVar14;
          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
        } while (bVar16);
        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;
      }
      goto LAB_001bb830;
    }
LAB_001bb970:
    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;
LAB_001bb97e:
    cVar4 = *(char *)(lVar1 + 0x5051);
LAB_001bb986:
    if (cVar4 == '\0') {
LAB_001bb98e:
      uVar9 = *(ulong *)(*param_5 + 0x20);
      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18
              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18
              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;
      bVar16 = uVar9 < 8;
      bVar19 = uVar9 == 8;
      if (8 < uVar9) {
        lVar12 = 7;
        pbVar13 = param_4;
        pbVar14 = (byte *)".ctors";
        do {
          if (lVar12 == 0) break;
          lVar12 = lVar12 + -1;
          bVar16 = *pbVar13 < *pbVar14;
          bVar19 = *pbVar13 == *pbVar14;
          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
        } while (bVar19);
        bVar17 = false;
        bVar16 = (!bVar16 && !bVar19) == bVar16;
        if (bVar16) {
LAB_001bb9d7:
          bVar19 = false;
          lVar12 = 0xc;
          pbVar13 = *(byte **)(lVar10 + 0x28);
          pbVar14 = (byte *)".init_array";
          do {
            if (lVar12 == 0) break;
            lVar12 = lVar12 + -1;
            bVar19 = *pbVar13 < *pbVar14;
            bVar16 = *pbVar13 == *pbVar14;
            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
          } while (bVar16);
          bVar16 = (!bVar19 && !bVar16) == bVar19;
          if (!bVar16) goto LAB_001bba30;
        }
        else {
          lVar12 = 7;
          pbVar13 = (byte *)".ctors.";
          pbVar14 = param_4;
          do {
            if (lVar12 == 0) break;
            lVar12 = lVar12 + -1;
            bVar17 = *pbVar13 < *pbVar14;
            bVar16 = *pbVar13 == *pbVar14;
            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
          } while (bVar16);
          bVar16 = (!bVar17 && !bVar16) == bVar17;
          if (bVar16) goto LAB_001bb9d7;
LAB_001bba30:
          bVar19 = false;
          lVar12 = 7;
          pbVar13 = param_4;
          pbVar14 = (byte *)".dtors";
          do {
            if (lVar12 == 0) break;
            lVar12 = lVar12 + -1;
            bVar19 = *pbVar13 < *pbVar14;
            bVar16 = *pbVar13 == *pbVar14;
            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
          } while (bVar16);
          bVar17 = false;
          bVar16 = (!bVar19 && !bVar16) == bVar19;
          if (!bVar16) {
            lVar12 = 7;
            pbVar13 = (byte *)".dtors.";
            pbVar14 = param_4;
            do {
              if (lVar12 == 0) break;
              lVar12 = lVar12 + -1;
              bVar17 = *pbVar13 < *pbVar14;
              bVar16 = *pbVar13 == *pbVar14;
              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
            } while (bVar16);
            bVar16 = (!bVar17 && !bVar16) == bVar17;
            if (!bVar16) goto LAB_001bb878;
          }
          bVar19 = false;
          lVar12 = 0xc;
          pbVar13 = *(byte **)(lVar10 + 0x28);
          pbVar14 = (byte *)".fini_array";
          do {
            if (lVar12 == 0) break;
            lVar12 = lVar12 + -1;
            bVar19 = *pbVar13 < *pbVar14;
            bVar16 = *pbVar13 == *pbVar14;
            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
          } while (bVar16);
          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;
        }
        local_60 = &DAT_0043e980;
        local_58 = param_2;
        local_50 = param_3;
        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);
        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);
        goto LAB_001bb87a;
      }
    }
  }
LAB_001bb878:
  cVar4 = '\0';
LAB_001bb87a:
  uVar9 = *(ulong *)(lVar10 + 0x70);
  uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);
  *param_9 = uVar8;
  if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {
    uVar5 = FUN_001a5050(param_1,lVar10,0);
    *(undefined4 *)(lVar10 + 0x78) = uVar5;
  }
  *(undefined1 *)(param_1 + 0x368) = 1;
  return lVar10;
}


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 0x001b4420
TEST AL,AL
JZ 0x001bb916
MOV RAX,qword ptr [0x0043e6b0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x001bba79
CMP byte ptr [RAX + 0x5051],0x0
JZ 0x001bb56b
MOV RDX,qword ptr [RBP]
MOV R8,qword ptr [RDX + 0x8]
BSWAP R8
MOV R14,R8
TEST R8D,0x200
JNZ 0x001bb930
CMP byte ptr [RAX + 0x8f19],0x0
LEA R14,[RSP + 0x30]
JZ 0x001bb660
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 0x001bb650
CMP RDX,RAX
JZ 0x001bb5c5
MOV RDI,RDX
CALL 0x002dac70
MOV RAX,qword ptr [RBP]
MOV RDX,qword ptr [0x0043e6b0]
MOV RAX,qword ptr [RAX + 0x8]
MOV RDX,qword ptr [RDX + 0x10]
BSWAP RAX
TEST RDX,RDX
JZ 0x001bbb53
MOV R8,RAX
AND R8D,0xfffff50f
CMP byte ptr [RDX + 0x5051],0x0
JZ 0x001bb5ff
AND EAX,0xfffff58f
MOV R8,RAX
MOV RCX,R14
LEA RDI,[RBX + 0x10]
MOV EDX,0x1
MOV qword ptr [RSP + 0x8],R8
LEA RSI,[0x3761c3]
CALL 0x0026e6a0
SUB RSP,0x8
MOV RDI,RBX
XOR R9D,R9D
PUSH 0x0
MOV R8,qword 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 0x001bb748
CMP RDX,RAX
JZ 0x001bb660
MOV RDI,RDX
CALL 0x002dac70
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 0x001bb8e0
MOV RDX,qword ptr [0x0043e6b0]
MOV RAX,qword ptr [RAX + 0x8]
MOV RDX,qword ptr [RDX + 0x10]
BSWAP RAX
TEST RDX,RDX
JZ 0x001bbb53
MOV R8,RAX
AND R8D,0xfffff50f
CMP byte ptr [RDX + 0x5051],0x0
JZ 0x001bb6c9
AND EAX,0xfffff58f
MOV R8,RAX
MOV RAX,qword ptr [R11 + 0x30]
MOV RCX,R14
LEA RDI,[RBX + 0x10]
MOV EDX,0x1
MOV qword ptr [RSP + 0x8],R8
MOV RSI,qword ptr [RAX]
MOV qword ptr [RSP + 0x10],R11
CALL 0x0026e6a0
SUB RSP,0x8
MOV ECX,R15D
XOR R9D,R9D
PUSH 0x0
MOV R8,qword 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 0x001bb748
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 dword ptr [RAX]
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 0x001bba70
TEST R15,R15
JZ 0x001bba79
CMP byte ptr [R15 + 0x5051],0x0
JNZ 0x001bb970
MOV ECX,0x7
LEA RSI,[0x37624f]
MOV RDI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001bb830
MOV ECX,0x7
LEA RSI,[0x376257]
MOV RDI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001bb830
MOV ECX,0xc
LEA RSI,[0x37706c]
MOV RDI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001bb830
MOV ECX,0xc
LEA RSI,[0x377079]
MOV RDI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001bb830
CMP byte ptr [R15 + 0x1179],0x0
JZ 0x001bb970
MOV ECX,0x7
LEA RDI,[0x376229]
MOV RSI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001bb830
MOV ECX,0x7
LEA RDI,[0x376248]
MOV RSI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001bb970
OR byte ptr [R14 + 0xc9],0x8
MOVZX EAX,byte ptr [R9 + 0x148]
CMP byte ptr [R15 + 0x62b9],0x0
MOV EDX,EAX
JZ 0x001bbaab
TEST AL,AL
JNZ 0x001bb87a
CMP byte ptr [RBX + 0x371],0x0
MOVZX EAX,byte ptr [R15 + 0x5051]
JNZ 0x001bb986
TEST AL,AL
JZ 0x001bbac0
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 0x00228100
MOV RCX,qword ptr [RSP + 0xb0]
MOV qword ptr [RCX],RAX
POP RAX
POP RDX
TEST R15B,0x2
JZ 0x001bb8d3
MOV RAX,qword ptr [R14 + 0x70]
AND R15D,0x5
AND EAX,0x5
CMP R15,RAX
JZ 0x001bb8d3
XOR EDX,EDX
MOV RSI,R14
MOV RDI,RBX
CALL 0x001a5050
MOV dword ptr [R14 + 0x78],EAX
MOV byte ptr [RBX + 0x368],0x1
JMP 0x001bb919
MOV R8,qword ptr [RAX + 0x8]
PUSH 0x1
MOV R9D,0x1
MOV ECX,R15D
PUSH 0x0
MOV RDX,R12
MOV RSI,R13
MOV RDI,RBX
PUSH 0x0
BSWAP R8
PUSH 0x0
CALL 0x001acf30
ADD RSP,0x20
MOV R14,RAX
TEST RAX,RAX
JNZ 0x001bb748
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 0x0026e6a0
MOV RCX,R14
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 0x001bb748
CMP byte ptr [R15 + 0x62b9],0x0
JNZ 0x001bb854
MOVZX EAX,byte ptr [R15 + 0x5051]
TEST AL,AL
JNZ 0x001bb878
MOV RAX,qword ptr [RBP]
MOV RAX,qword ptr [RAX + 0x20]
BSWAP RAX
CMP RAX,0x8
JBE 0x001bb878
MOV ECX,0x7
LEA RDI,[0x376229]
MOV RSI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001bb9d7
MOV ECX,0x7
LEA RSI,[0x37624f]
MOV RDI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001bba30
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 0x001bba30
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 0x001bb87a
MOV ECX,0x7
LEA RDI,[0x376248]
MOV RSI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001bbb30
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 0x001bb9f2
JMP 0x001bb878
TEST R15,R15
JNZ 0x001bb87a
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 0x001bb97e
JMP 0x001bb87a
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 0x001bba98
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 0x001bb98e
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 0x001bbad8
MOV ECX,0x7
LEA RSI,[0x376257]
MOV RDI,R12
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001bba4e
JMP 0x001bb878
CALL 0x001a4340
(translation_unit "long FUN_001bb4f0(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  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  char *__s1;\n  size_t __n;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  bool bVar17;\n  undefined1 uVar18;\n  bool bVar19;\n  byte bVar20;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar20 = 0;\n  *param_9 = 0;\n  cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar10 == 0) goto LAB_001bba79;\n  if (*(char *)(lVar10 + 0x5051) == '\0') {\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }\n  else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }\nLAB_001bb748:\n  lVar12 = *(long *)(param_1 + 8);\n  cVar4 = *(char *)(lVar12 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar4 != '\0') {\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (lVar1 == 0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar16 = false;\n  bVar19 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar19) goto LAB_001bb970;\n  lVar11 = 7;\n  pbVar13 = (byte *)".ctors.";\n  pbVar14 = param_4;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar17 = false;\n  bVar16 = (!bVar16 && !bVar19) == bVar16;\n  if (bVar16) {\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }\nLAB_001bb878:\n  cVar4 = '\0';\nLAB_001bb87a:\n  uVar9 = *(ulong *)(lVar10 + 0x70);\n  uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);\n  *param_9 = uVar8;\n  if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar10;\n}\n\n" (function_definition "long FUN_001bb4f0(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  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  char *__s1;\n  size_t __n;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  bool bVar17;\n  undefined1 uVar18;\n  bool bVar19;\n  byte bVar20;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar20 = 0;\n  *param_9 = 0;\n  cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar10 == 0) goto LAB_001bba79;\n  if (*(char *)(lVar10 + 0x5051) == '\0') {\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }\n  else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }\nLAB_001bb748:\n  lVar12 = *(long *)(param_1 + 8);\n  cVar4 = *(char *)(lVar12 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar4 != '\0') {\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (lVar1 == 0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar16 = false;\n  bVar19 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar19) goto LAB_001bb970;\n  lVar11 = 7;\n  pbVar13 = (byte *)".ctors.";\n  pbVar14 = param_4;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar17 = false;\n  bVar16 = (!bVar16 && !bVar19) == bVar16;\n  if (bVar16) {\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }\nLAB_001bb878:\n  cVar4 = '\0';\nLAB_001bb87a:\n  uVar9 = *(ulong *)(lVar10 + 0x70);\n  uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);\n  *param_9 = uVar8;\n  if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar10;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_001bb4f0(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  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  char *__s1;\n  size_t __n;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  bool bVar17;\n  undefined1 uVar18;\n  bool bVar19;\n  byte bVar20;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar20 = 0;\n  *param_9 = 0;\n  cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar10 == 0) goto LAB_001bba79;\n  if (*(char *)(lVar10 + 0x5051) == '\0') {\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }\n  else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }\nLAB_001bb748:\n  lVar12 = *(long *)(param_1 + 8);\n  cVar4 = *(char *)(lVar12 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar4 != '\0') {\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (lVar1 == 0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar16 = false;\n  bVar19 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar19) goto LAB_001bb970;\n  lVar11 = 7;\n  pbVar13 = (byte *)".ctors.";\n  pbVar14 = param_4;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar17 = false;\n  bVar16 = (!bVar16 && !bVar19) == bVar16;\n  if (bVar16) {\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }\nLAB_001bb878:\n  cVar4 = '\0';\nLAB_001bb87a:\n  uVar9 = *(ulong *)(lVar10 + 0x70);\n  uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);\n  *param_9 = uVar8;\n  if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar10;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "undefined1 uVar18;" type_identifier identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "byte bVar20;" 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 "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);" (assignment_expression "cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5)" identifier = (call_expression "FUN_001b4420(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 (cVar4 == '\0') {\n    return 0;\n  }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);" (assignment_expression "lVar10 = *(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 (lVar10 == 0) goto LAB_001bba79;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001bba79;" goto statement_identifier ;)) (if_statement "if (*(char *)(lVar10 + 0x5051) == '\0') {\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }\n  else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }" if (parenthesized_expression "(*(char *)(lVar10 + 0x5051) == '\0')" ( (binary_expression "*(char *)(lVar10 + 0x5051) == '\0'" (pointer_expression "*(char *)(lVar10 + 0x5051)" * (cast_expression "(char *)(lVar10 + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x5051)" ( (binary_expression "lVar10 + 0x5051" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }" { (labeled_statement "LAB_001bb56b:\n    uVar15 = 0;" statement_identifier : (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;)) (expression_statement "uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';" (assignment_expression "uVar18 = *(char *)(lVar10 + 0x8f19) == '\0'" identifier = (binary_expression "*(char *)(lVar10 + 0x8f19) == '\0'" (pointer_expression "*(char *)(lVar10 + 0x8f19)" * (cast_expression "(char *)(lVar10 + 0x8f19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x8f19)" ( (binary_expression "lVar10 + 0x8f19" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }" if (parenthesized_expression "(!(bool)uVar18)" ( (unary_expression "!(bool)uVar18" ! (cast_expression "(bool)uVar18" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(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 "lVar10 = 0xe;" (assignment_expression "lVar10 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".text.unlikely";" (assignment_expression "pbVar13 = (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 "pbVar14 = local_58;" (assignment_expression "pbVar14 = local_58" identifier = identifier) ;) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);" do (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar13 < *pbVar14;" (assignment_expression "uVar15 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "uVar18 = *pbVar13 == *pbVar14;" (assignment_expression "uVar18 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar18)" ( (cast_expression "(bool)uVar18" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }" if (parenthesized_expression "((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15)" ( (binary_expression "(!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar18)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar18" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar18" ! (cast_expression "(bool)uVar18" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }" { (if_statement "if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n          FUN_002dac70(local_58);\n        }" { (expression_statement "FUN_002dac70(local_58);" (call_expression "FUN_002dac70(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) (expression_statement "uVar8 = *(undefined8 *)(*param_5 + 8);" (assignment_expression "uVar8 = *(undefined8 *)(*param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(*param_5 + 8)" * (cast_expression "(undefined8 *)(*param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;" (assignment_expression "uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" identifier = (binary_expression "(uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (call_expression "(uint)(byte)((ulong)uVar8 >> 0x38)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((ulong)uVar8 >> 0x38)" ( (binary_expression "(ulong)uVar8 >> 0x38" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) | (binary_expression "((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (parenthesized_expression "((uint)((ulong)uVar8 >> 0x20) & 0xff0000)" ( (binary_expression "(uint)((ulong)uVar8 >> 0x20) & 0xff0000" (call_expression "(uint)((ulong)uVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)uVar8 >> 0x20)" ( (binary_expression "(ulong)uVar8 >> 0x20" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) & number_literal) )) >> number_literal))) ;) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;" 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_001bbb53;" goto statement_identifier ;)) (expression_statement "uVar3 = uVar2 & 0xfffff50f;" (assignment_expression "uVar3 = uVar2 & 0xfffff50f" identifier = (binary_expression "uVar2 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 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          uVar3 = uVar2 & 0xfffff58f;\n        }" { (expression_statement "uVar3 = uVar2 & 0xfffff58f;" (assignment_expression "uVar3 = uVar2 & 0xfffff58f" identifier = (binary_expression "uVar2 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);" (assignment_expression "uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58)" identifier = (call_expression "FUN_0026e6a0(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 "lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);" (assignment_expression "lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" identifier = (call_expression "FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" identifier (argument_list "(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" ( identifier , identifier , identifier , identifier , (binary_expression "uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000" (binary_expression "uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000" identifier | (binary_expression "(uint)((ulong)uVar8 >> 0x18) & 0xff0000" (call_expression "(uint)((ulong)uVar8 >> 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)uVar8 >> 0x18)" ( (binary_expression "(ulong)uVar8 >> 0x18" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) | (binary_expression "(uint)((ulong)uVar8 >> 8) & 0xff000000" (call_expression "(uint)((ulong)uVar8 >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)uVar8 >> 8)" ( (binary_expression "(ulong)uVar8 >> 8" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) , number_literal , number_literal )))) ;) (expression_statement "*(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;" (assignment_expression "*(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar10 + 0xca)" * (cast_expression "(byte *)(lVar10 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xca)" ( (binary_expression "lVar10 + 0xca" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar10 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar10 + 0xca)" * (cast_expression "(byte *)(lVar10 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xca)" ( (binary_expression "lVar10 + 0xca" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_001bb748;" goto statement_identifier ;) })) (if_statement "if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n        FUN_002dac70(local_58);\n      }" { (expression_statement "FUN_002dac70(local_58);" (call_expression "FUN_002dac70(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 "lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);" (assignment_expression "lVar12 = 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 (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }" if (parenthesized_expression "(lVar12 == param_1 + 1000)" ( (binary_expression "lVar12 == param_1 + 1000" identifier == (binary_expression "param_1 + 1000" identifier + number_literal)) )) (compound_statement "{\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "uVar9 = *(ulong *)(*param_5 + 8);" (assignment_expression "uVar9 = *(ulong *)(*param_5 + 8)" identifier = (pointer_expression "*(ulong *)(*param_5 + 8)" * (cast_expression "(ulong *)(*param_5 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (expression_statement "lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);" (assignment_expression "lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1)" identifier = (call_expression "FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1)" identifier (argument_list "(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1)" ( identifier , identifier , identifier , identifier , (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" ( (binary_expression "uVar9 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" ( (binary_expression "uVar9 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" ( (binary_expression "uVar9 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x38" identifier << number_literal)) , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (if_statement "if (lVar10 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }" else (compound_statement "{\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }" { (expression_statement "uVar8 = *(undefined8 *)(*param_5 + 8);" (assignment_expression "uVar8 = *(undefined8 *)(*param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(*param_5 + 8)" * (cast_expression "(undefined8 *)(*param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;" (assignment_expression "uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" identifier = (binary_expression "(uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (call_expression "(uint)(byte)((ulong)uVar8 >> 0x38)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((ulong)uVar8 >> 0x38)" ( (binary_expression "(ulong)uVar8 >> 0x38" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) | (binary_expression "((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (parenthesized_expression "((uint)((ulong)uVar8 >> 0x20) & 0xff0000)" ( (binary_expression "(uint)((ulong)uVar8 >> 0x20) & 0xff0000" (call_expression "(uint)((ulong)uVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)uVar8 >> 0x20)" ( (binary_expression "(ulong)uVar8 >> 0x20" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) & number_literal) )) >> number_literal))) ;) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\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_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        FUN_001a4340();\n      }" { (labeled_statement "LAB_001bbb53:\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 "uVar3 = uVar2 & 0xfffff50f;" (assignment_expression "uVar3 = uVar2 & 0xfffff50f" identifier = (binary_expression "uVar2 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 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        uVar3 = uVar2 & 0xfffff58f;\n      }" { (expression_statement "uVar3 = uVar2 & 0xfffff58f;" (assignment_expression "uVar3 = uVar2 & 0xfffff58f" identifier = (binary_expression "uVar2 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);" (assignment_expression "uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58)" identifier = (call_expression "FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58)" identifier (argument_list "(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) , (pointer_expression "**(undefined8 **)(lVar12 + 0x30)" * (pointer_expression "*(undefined8 **)(lVar12 + 0x30)" * (cast_expression "(undefined8 **)(lVar12 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar12 + 0x30)" ( (binary_expression "lVar12 + 0x30" identifier + number_literal) ))))) , number_literal , (pointer_expression "&local_58" & identifier) )))) ;) (expression_statement "lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);" (assignment_expression "lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" identifier = (call_expression "FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" identifier (argument_list "(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" ( identifier , identifier , identifier , identifier , (binary_expression "uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000" (binary_expression "uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000" identifier | (binary_expression "(uint)((ulong)uVar8 >> 0x18) & 0xff0000" (call_expression "(uint)((ulong)uVar8 >> 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)uVar8 >> 0x18)" ( (binary_expression "(ulong)uVar8 >> 0x18" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) | (binary_expression "(uint)((ulong)uVar8 >> 8) & 0xff000000" (call_expression "(uint)((ulong)uVar8 >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)uVar8 >> 8)" ( (binary_expression "(ulong)uVar8 >> 8" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) , number_literal , number_literal )))) ;) (if_statement "if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }" if (parenthesized_expression "(-1 < (char)*(byte *)(lVar10 + 0xca))" ( (binary_expression "-1 < (char)*(byte *)(lVar10 + 0xca)" number_literal < (cast_expression "(char)*(byte *)(lVar10 + 0xca)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(lVar10 + 0xca)" * (cast_expression "(byte *)(lVar10 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xca)" ( (binary_expression "lVar10 + 0xca" identifier + number_literal) )))))) )) (compound_statement "{\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }" { (expression_statement "*(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;" (assignment_expression "*(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar10 + 0xca)" * (cast_expression "(byte *)(lVar10 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xca)" ( (binary_expression "lVar10 + 0xca" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar10 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar10 + 0xca)" * (cast_expression "(byte *)(lVar10 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xca)" ( (binary_expression "lVar10 + 0xca" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "lVar12 = *(long *)(lVar12 + 0x30);" (assignment_expression "lVar12 = *(long *)(lVar12 + 0x30)" identifier = (pointer_expression "*(long *)(lVar12 + 0x30)" * (cast_expression "(long *)(lVar12 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x30)" ( (binary_expression "lVar12 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);" (assignment_expression "*(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8)" (pointer_expression "*(undefined8 *)(lVar10 + 0xd8)" * (cast_expression "(undefined8 *)(lVar10 + 0xd8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xd8)" ( (binary_expression "lVar10 + 0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar12 + 8)" * (cast_expression "(undefined8 *)(lVar12 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 8)" ( (binary_expression "lVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);" (assignment_expression "*(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10)" (pointer_expression "*(undefined8 *)(lVar10 + 0xe0)" * (cast_expression "(undefined8 *)(lVar10 + 0xe0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xe0)" ( (binary_expression "lVar10 + 0xe0" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar12 + 0x10)" * (cast_expression "(undefined8 *)(lVar12 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x10)" ( (binary_expression "lVar12 + 0x10" identifier + number_literal) ))))) ;) })) }))) }) (else_clause "else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }" else (compound_statement "{\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }" { (expression_statement "uVar9 = *(ulong *)(*param_5 + 8);" (assignment_expression "uVar9 = *(ulong *)(*param_5 + 8)" identifier = (pointer_expression "*(ulong *)(*param_5 + 8)" * (cast_expression "(ulong *)(*param_5 + 8)" ( (type_descriptor "ulong *" 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 (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;" if (parenthesized_expression "(((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0)" ( (binary_expression "((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0" (parenthesized_expression "((uVar9 & 0xff000000000000) >> 0x28 & 0x200)" ( (binary_expression "(uVar9 & 0xff000000000000) >> 0x28 & 0x200" (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001bb56b;" goto statement_identifier ;)) (expression_statement "param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);" (assignment_expression "param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0)" identifier = (cast_expression "(byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0026e6a0(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 "lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);" (assignment_expression "lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0)" identifier = (call_expression "FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0)" identifier (argument_list "(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0)" ( identifier , identifier , identifier , (binary_expression "(uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000" (binary_expression "(uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000" (binary_expression "(uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff" (call_expression "(uint)(byte)(uVar9 >> 0x38)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar9 >> 0x38)" ( (binary_expression "uVar9 >> 0x38" identifier >> number_literal) ))) | (binary_expression "(uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff" (call_expression "(uint)((uVar9 & 0xff000000000000) >> 0x28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar9 & 0xff000000000000) >> 0x28)" ( (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal) ))) & number_literal)) | (binary_expression "(uint)(uVar9 >> 0x18) & 0xff0000" (call_expression "(uint)(uVar9 >> 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 >> 0x18)" ( (binary_expression "uVar9 >> 0x18" identifier >> number_literal) ))) & number_literal)) | (binary_expression "(uint)(uVar9 >> 8) & 0xff000000" (call_expression "(uint)(uVar9 >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 >> 8)" ( (binary_expression "uVar9 >> 8" identifier >> number_literal) ))) & number_literal)) , number_literal , number_literal )))) ;) }))) (labeled_statement "LAB_001bb748:\n  lVar12 = *(long *)(param_1 + 8);" statement_identifier : (expression_statement "lVar12 = *(long *)(param_1 + 8);" (assignment_expression "lVar12 = *(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 "cVar4 = *(char *)(lVar12 + 0x148);" (assignment_expression "cVar4 = *(char *)(lVar12 + 0x148)" identifier = (pointer_expression "*(char *)(lVar12 + 0x148)" * (cast_expression "(char *)(lVar12 + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x148)" ( (binary_expression "lVar12 + 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 (cVar4 != '\0') {\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }" { (if_statement "if (lVar1 == 0) goto LAB_001bba79;" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001bba79;" goto statement_identifier ;)) (goto_statement "goto LAB_001bb87a;" goto statement_identifier ;) })) (if_statement "if (lVar1 == 0) {\nLAB_001bba79:\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_001bba79:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_001bba79:\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 "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar19 = *(char *)(lVar1 + 0x5051) == '\0';" (assignment_expression "bVar19 = *(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 (!bVar19) goto LAB_001bb970;" if (parenthesized_expression "(!bVar19)" ( (unary_expression "!bVar19" ! identifier) )) (goto_statement "goto LAB_001bb970;" goto statement_identifier ;)) (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".ctors.";" (assignment_expression "pbVar13 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" identifier = identifier) ;) (do_statement "do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  } while (bVar19);" do (compound_statement "{\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar19 = *pbVar13 == *pbVar14;" (assignment_expression "bVar19 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar19) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar19) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar19) == bVar16" (parenthesized_expression "(!bVar16 && !bVar19)" ( (binary_expression "!bVar16 && !bVar19" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) {\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }" { (labeled_statement "LAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;" statement_identifier : (expression_statement "*(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;" (assignment_expression "*(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar10 + 0xc9)" * (cast_expression "(byte *)(lVar10 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xc9)" ( (binary_expression "lVar10 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar10 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar10 + 0xc9)" * (cast_expression "(byte *)(lVar10 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xc9)" ( (binary_expression "lVar10 + 0xc9" identifier + number_literal) )))) | number_literal)) ;)) (expression_statement "cVar4 = *(char *)(lVar12 + 0x148);" (assignment_expression "cVar4 = *(char *)(lVar12 + 0x148)" identifier = (pointer_expression "*(char *)(lVar12 + 0x148)" * (cast_expression "(char *)(lVar12 + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x148)" ( (binary_expression "lVar12 + 0x148" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\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_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }" { (labeled_statement "LAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;" statement_identifier : (if_statement "if (cVar4 != '\0') goto LAB_001bb87a;" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001bb87a;" goto statement_identifier ;))) (goto_statement "goto LAB_001bb97e;" goto statement_identifier ;) })) (if_statement "if (cVar4 != '\0') goto LAB_001bb87a;" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001bb87a;" goto statement_identifier ;)) (labeled_statement "LAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);" statement_identifier : (expression_statement "cVar4 = *(char *)(lVar1 + 0x5051);" (assignment_expression "cVar4 = *(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_001bb986;" 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_001bb986;" goto statement_identifier ;)) (if_statement "if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\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 (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\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 (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }" while (parenthesized_expression "(iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0)" ( (comma_expression "iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0" (assignment_expression "iVar6 = 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 "iVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\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_001bb98e;" 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_001bb98e;" 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 *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;" (assignment_expression "*(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar10 + 0xc9)" * (cast_expression "(byte *)(lVar10 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xc9)" ( (binary_expression "lVar10 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar10 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar10 + 0xc9)" * (cast_expression "(byte *)(lVar10 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xc9)" ( (binary_expression "lVar10 + 0xc9" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "cVar4 = *(char *)(lVar12 + 0x148);" (assignment_expression "cVar4 = *(char *)(lVar12 + 0x148)" identifier = (pointer_expression "*(char *)(lVar12 + 0x148)" * (cast_expression "(char *)(lVar12 + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x148)" ( (binary_expression "lVar12 + 0x148" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001bbaab;" goto statement_identifier ;) })) }) (else_clause "else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }" else (compound_statement "{\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }" { (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".dtors.";" (assignment_expression "pbVar13 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar17 && !bVar16) == bVar17;" (assignment_expression "bVar16 = (!bVar17 && !bVar16) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) goto LAB_001bb830;" if (parenthesized_expression "(bVar16)" ( identifier )) (goto_statement "goto LAB_001bb830;" goto statement_identifier ;)) (expression_statement "lVar11 = 0xc;" (assignment_expression "lVar11 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".init_array.";" (assignment_expression "pbVar13 = (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 "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = *pbVar13 < *pbVar14;" (assignment_expression "bVar19 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar19 && !bVar16) == bVar19;" (assignment_expression "bVar16 = (!bVar19 && !bVar16) == bVar19" identifier = (binary_expression "(!bVar19 && !bVar16) == bVar19" (parenthesized_expression "(!bVar19 && !bVar16)" ( (binary_expression "!bVar19 && !bVar16" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) goto LAB_001bb830;" if (parenthesized_expression "(bVar16)" ( identifier )) (goto_statement "goto LAB_001bb830;" goto statement_identifier ;)) (expression_statement "lVar11 = 0xc;" (assignment_expression "lVar11 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".fini_array.";" (assignment_expression "pbVar13 = (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 "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;" if (parenthesized_expression "((!bVar17 && !bVar16) == bVar17)" ( (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_001bb830;" goto statement_identifier ;)) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar19 = *(char *)(lVar1 + 0x1179) == '\0';" (assignment_expression "bVar19 = *(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 (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }" if (parenthesized_expression "(!bVar19)" ( (unary_expression "!bVar19" ! identifier) )) (compound_statement "{\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }" { (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".ctors";" (assignment_expression "pbVar14 = (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 (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);" do (compound_statement "{\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar19 = *pbVar13 == *pbVar14;" (assignment_expression "bVar19 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar19) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar19) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar19) == bVar16" (parenthesized_expression "(!bVar16 && !bVar19)" ( (binary_expression "!bVar16 && !bVar19" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }" { (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".dtors";" (assignment_expression "pbVar14 = (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 (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);" do (compound_statement "{\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;" if (parenthesized_expression "((!bVar17 && !bVar16) != bVar17)" ( (binary_expression "(!bVar17 && !bVar16) != bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001bb970;" goto statement_identifier ;)) })) (goto_statement "goto LAB_001bb830;" goto statement_identifier ;) })) (labeled_statement "LAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;" statement_identifier : (if_statement "if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;" 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_001bb854;" goto statement_identifier ;))) (labeled_statement "LAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);" statement_identifier : (expression_statement "cVar4 = *(char *)(lVar1 + 0x5051);" (assignment_expression "cVar4 = *(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_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }" statement_identifier : (if_statement "if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }" { (labeled_statement "LAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);" statement_identifier : (expression_statement "uVar9 = *(ulong *)(*param_5 + 0x20);" (assignment_expression "uVar9 = *(ulong *)(*param_5 + 0x20)" identifier = (pointer_expression "*(ulong *)(*param_5 + 0x20)" * (cast_expression "(ulong *)(*param_5 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 0x20)" ( (binary_expression "*param_5 + 0x20" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;)) (expression_statement "uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;" (assignment_expression "uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" identifier = (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" ( (binary_expression "uVar9 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" ( (binary_expression "uVar9 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" ( (binary_expression "uVar9 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x38" identifier << number_literal))) ;) (expression_statement "bVar16 = uVar9 < 8;" (assignment_expression "bVar16 = uVar9 < 8" identifier = (binary_expression "uVar9 < 8" identifier < number_literal)) ;) (expression_statement "bVar19 = uVar9 == 8;" (assignment_expression "bVar19 = uVar9 == 8" identifier = (binary_expression "uVar9 == 8" identifier == number_literal)) ;) (if_statement "if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }" if (parenthesized_expression "(8 < uVar9)" ( (binary_expression "8 < uVar9" number_literal < identifier) )) (compound_statement "{\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }" { (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".ctors";" (assignment_expression "pbVar14 = (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          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);" do (compound_statement "{\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -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 "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar19 = *pbVar13 == *pbVar14;" (assignment_expression "bVar19 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar19) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar19) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar19) == bVar16" (parenthesized_expression "(!bVar16 && !bVar19)" ( (binary_expression "!bVar16 && !bVar19" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\n        }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }" { (labeled_statement "LAB_001bb9d7:\n          bVar19 = false;" statement_identifier : (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;)) (expression_statement "lVar12 = 0xc;" (assignment_expression "lVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar13 = *(byte **)(lVar10 + 0x28);" (assignment_expression "pbVar13 = *(byte **)(lVar10 + 0x28)" identifier = (pointer_expression "*(byte **)(lVar10 + 0x28)" * (cast_expression "(byte **)(lVar10 + 0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x28)" ( (binary_expression "lVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = (byte *)".init_array";" (assignment_expression "pbVar14 = (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            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);" do (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -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 "bVar19 = *pbVar13 < *pbVar14;" (assignment_expression "bVar19 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar16 = (!bVar19 && !bVar16) == bVar19;" (assignment_expression "bVar16 = (!bVar19 && !bVar16) == bVar19" identifier = (binary_expression "(!bVar19 && !bVar16) == bVar19" (parenthesized_expression "(!bVar19 && !bVar16)" ( (binary_expression "!bVar19 && !bVar16" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) goto LAB_001bba30;" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (goto_statement "goto LAB_001bba30;" goto statement_identifier ;)) }) (else_clause "else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\n        }" else (compound_statement "{\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\n        }" { (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".ctors.";" (assignment_expression "pbVar13 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" identifier = identifier) ;) (do_statement "do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);" do (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -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 "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar16 = (!bVar17 && !bVar16) == bVar17;" (assignment_expression "bVar16 = (!bVar17 && !bVar16) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) goto LAB_001bb9d7;" if (parenthesized_expression "(bVar16)" ( identifier )) (goto_statement "goto LAB_001bb9d7;" goto statement_identifier ;)) (labeled_statement "LAB_001bba30:\n          bVar19 = false;" statement_identifier : (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;)) (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".dtors";" (assignment_expression "pbVar14 = (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            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);" do (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -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 "bVar19 = *pbVar13 < *pbVar14;" (assignment_expression "bVar19 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar19 && !bVar16) == bVar19;" (assignment_expression "bVar16 = (!bVar19 && !bVar16) == bVar19" identifier = (binary_expression "(!bVar19 && !bVar16) == bVar19" (parenthesized_expression "(!bVar19 && !bVar16)" ( (binary_expression "!bVar19 && !bVar16" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }" { (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".dtors.";" (assignment_expression "pbVar13 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" identifier = identifier) ;) (do_statement "do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);" do (compound_statement "{\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -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 "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar16 = (!bVar17 && !bVar16) == bVar17;" (assignment_expression "bVar16 = (!bVar17 && !bVar16) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) goto LAB_001bb878;" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (goto_statement "goto LAB_001bb878;" goto statement_identifier ;)) })) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "lVar12 = 0xc;" (assignment_expression "lVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar13 = *(byte **)(lVar10 + 0x28);" (assignment_expression "pbVar13 = *(byte **)(lVar10 + 0x28)" identifier = (pointer_expression "*(byte **)(lVar10 + 0x28)" * (cast_expression "(byte **)(lVar10 + 0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x28)" ( (binary_expression "lVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = (byte *)".fini_array";" (assignment_expression "pbVar14 = (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            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);" do (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -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 "bVar19 = *pbVar13 < *pbVar14;" (assignment_expression "bVar19 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;" if (parenthesized_expression "((!bVar19 && !bVar16) != bVar19)" ( (binary_expression "(!bVar19 && !bVar16) != bVar19" (parenthesized_expression "(!bVar19 && !bVar16)" ( (binary_expression "!bVar19 && !bVar16" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001bb878;" 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 "cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);" (assignment_expression "cVar4 = *(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_001bb87a;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_001bb878:\n  cVar4 = '\0';" statement_identifier : (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (labeled_statement "LAB_001bb87a:\n  uVar9 = *(ulong *)(lVar10 + 0x70);" statement_identifier : (expression_statement "uVar9 = *(ulong *)(lVar10 + 0x70);" (assignment_expression "uVar9 = *(ulong *)(lVar10 + 0x70)" identifier = (pointer_expression "*(ulong *)(lVar10 + 0x70)" * (cast_expression "(ulong *)(lVar10 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x70)" ( (binary_expression "lVar10 + 0x70" identifier + number_literal) ))))) ;)) (expression_statement "uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);" (assignment_expression "uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4)" identifier = (call_expression "FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4)" identifier (argument_list "(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "*param_9 = uVar8;" (assignment_expression "*param_9 = uVar8" (pointer_expression "*param_9" * identifier) = identifier) ;) (if_statement "if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }" if (parenthesized_expression "(((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5)))" ( (binary_expression "((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))" (parenthesized_expression "((uVar9 & 2) != 0)" ( (binary_expression "(uVar9 & 2) != 0" (parenthesized_expression "(uVar9 & 2)" ( (binary_expression "uVar9 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))" ( (binary_expression "((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5)" (parenthesized_expression "((uint)uVar9 & 5)" ( (binary_expression "(uint)uVar9 & 5" (cast_expression "(uint)uVar9" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != (parenthesized_expression "((uint)*(undefined8 *)(lVar10 + 0x70) & 5)" ( (binary_expression "(uint)*(undefined8 *)(lVar10 + 0x70) & 5" (binary_expression "(uint)*(undefined8 *)(lVar10 + 0x70)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(lVar10 + 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x70)" ( (binary_expression "lVar10 + 0x70" identifier + number_literal) )))) & number_literal) ))) ))) )) (compound_statement "{\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }" { (expression_statement "uVar5 = FUN_001a5050(param_1,lVar10,0);" (assignment_expression "uVar5 = FUN_001a5050(param_1,lVar10,0)" identifier = (call_expression "FUN_001a5050(param_1,lVar10,0)" identifier (argument_list "(param_1,lVar10,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(lVar10 + 0x78) = uVar5;" (assignment_expression "*(undefined4 *)(lVar10 + 0x78) = uVar5" (pointer_expression "*(undefined4 *)(lVar10 + 0x78)" * (cast_expression "(undefined4 *)(lVar10 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x78)" ( (binary_expression "lVar10 + 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 lVar10;" 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<64, true>\n   DWARF original prototype: Output_section * layout<64,_true>(Layout * this,\n   Sized_relobj_file<64,_true> * object, uint shndx, char * name, Shdr<64,_true> * shdr, uint\n   sh_type, uint reloc_shndx, uint param_9, off_t * off) */\n\nOutput_section * __thiscall\ngold::Layout::layout<64,_true>\n          (Layout *this,Sized_relobj_file<64,_true> *object,uint shndx,char *name,\n          Shdr<64,_true> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)\n\n{\n  General_options *pGVar1;\n  Elf_WXword EVar2;\n  _Base_ptr p_Var3;\n  Script_options *pSVar4;\n  uint uVar5;\n  uint uVar6;\n  bool bVar7;\n  Output_section_order OVar8;\n  int iVar9;\n  char *pcVar10;\n  Output_section *this_00;\n  iterator iVar11;\n  off_t oVar12;\n  ulong uVar13;\n  long lVar14;\n  char cVar15;\n  size_t __n;\n  Target *pTVar16;\n  byte *pbVar17;\n  Target *this_01;\n  byte *pbVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  undefined1 uVar22;\n  bool bVar23;\n  byte bVar24;\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 *pTVar18;\n  \n  bVar24 = 0;\n  *off = 0;\n  bVar7 = include_section<64,_true>(this,object,name,shdr);\n  if (!bVar7) {\n    return (Output_section *)0x0;\n  }\n  pGVar1 = parameters->options_;\n  if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n  if ((pGVar1->relocatable_).value == false) {\nLAB_001bb56b:\n    uVar20 = 0;\n    uVar22 = (pGVar1->text_unlikely_segment_).value == false;\n    if (!(bool)uVar22) {\n      (*(object->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);\n      lVar14 = 0xe;\n      pTVar16 = (Target *)".text.unlikely";\n      pTVar18 = (Target *)name_key;\n      do {\n        this_01 = pTVar18;\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        this_01 = pTVar18 + (ulong)bVar24 * -2 + 1;\n        uVar20 = (byte)*pTVar16 < (byte)*pTVar18;\n        uVar22 = *pTVar16 == *pTVar18;\n        pTVar16 = pTVar16 + (ulong)bVar24 * -2 + 1;\n        pTVar18 = this_01;\n      } while ((bool)uVar22);\n      if ((!(bool)uVar20 && !(bool)uVar22) == (bool)uVar20) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        EVar2 = shdr->p_->sh_flags;\n        uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001bbb53;\n        uVar6 = uVar5 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001bb748;\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    iVar11 = 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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7) {\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar14 = 7;\n    pbVar17 = (byte *)".dtors.";\n    pbVar19 = (byte *)name;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar21 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);\n    bVar23 = false;\n    bVar7 = (!bVar21 && !bVar7) == bVar21;\n    if (bVar7) goto LAB_001bb830;\n    lVar14 = 0xc;\n    pbVar17 = (byte *)".init_array.";\n    pbVar19 = (byte *)name;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar23 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);\n    bVar21 = false;\n    bVar7 = (!bVar23 && !bVar7) == bVar23;\n    if (bVar7) goto LAB_001bb830;\n    lVar14 = 0xc;\n    pbVar17 = (byte *)".fini_array.";\n    pbVar19 = (byte *)name;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar21 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);\n    if ((!bVar21 && !bVar7) == bVar21) goto LAB_001bb830;\n    bVar7 = false;\n    bVar23 = (pGVar1->ctors_in_init_array_).value == false;\n    if (!bVar23) {\n      lVar14 = 7;\n      pbVar17 = (byte *)name;\n      pbVar19 = (byte *)".ctors";\n      do {\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        bVar7 = *pbVar17 < *pbVar19;\n        bVar23 = *pbVar17 == *pbVar19;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n        pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar7 = (!bVar7 && !bVar23) == bVar7;\n      if (!bVar7) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".dtors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar21 = *pbVar17 < *pbVar19;\n          bVar7 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar7);\n        if ((!bVar21 && !bVar7) != bVar21) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if ((pGVar1->text_reorder_).value != false) goto LAB_001bb854;\nLAB_001bb97e:\n    cVar15 = (pGVar1->relocatable_).value;\nLAB_001bb986:\n    if (cVar15 == '\0') {\nLAB_001bb98e:\n      uVar13 = shdr->p_->sh_size;\n      uVar13 = uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 | (uVar13 & 0xff00) << 0x28\n               | uVar13 << 0x38;\n      bVar7 = uVar13 < 8;\n      bVar23 = uVar13 == 8;\n      if (8 < uVar13) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".ctors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar7 = *pbVar17 < *pbVar19;\n          bVar23 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar7 = (!bVar7 && !bVar23) == bVar7;\n        if (bVar7) {\nLAB_001bb9d7:\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".init_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) goto LAB_001bba30;\n        }\n        else {\n          lVar14 = 7;\n          pbVar17 = (byte *)".ctors.";\n          pbVar19 = (byte *)name;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar21 && !bVar7) == bVar21;\n          if (bVar7) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar23 = false;\n          lVar14 = 7;\n          pbVar17 = (byte *)name;\n          pbVar19 = (byte *)".dtors";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar21 = false;\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".fini_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;\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        cVar15 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001bb87a;\n      }\n    }\n  }\nLAB_001bb878:\n  cVar15 = false;\nLAB_001bb87a:\n  uVar13 = this_00->flags_;\n  oVar12 = Output_section::add_input_section<64,_true>\n                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar15);\n  *off = oVar12;\n  if (((uVar13 & 2) != 0) && (((uint)uVar13 & 5) != ((uint)this_00->flags_ & 5))) {\n    OVar8 = default_section_order(this,this_00,false);\n    this_00->order_ = OVar8;\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<64,_true>\n          (Layout *this,Sized_relobj_file<64,_true> *object,uint shndx,char *name,\n          Shdr<64,_true> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)" (binary_expression "Output_section * __thiscall\ngold::Layout::layout<64,_true>\n          (Layout *this,Sized_relobj_file<64,_true> *object,uint shndx,char *name,\n          Shdr<64,_true> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)" (binary_expression "Output_section * __thiscall\ngold::Layout::layout<64" (binary_expression "Output_section * __thiscall" identifier * identifier) (ERROR "gold::Layout::layout" identifier : : identifier : : identifier) < number_literal) (ERROR ",_true" , identifier) > (parenthesized_expression "(Layout *this,Sized_relobj_file<64,_true> *object,uint shndx,char *name,\n          Shdr<64,_true> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)" ( (comma_expression "Layout *this,Sized_relobj_file<64,_true> *object,uint shndx,char *name,\n          Shdr<64,_true> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off" (binary_expression "Layout *this" identifier * identifier) , (comma_expression "Sized_relobj_file<64,_true> *object,uint shndx,char *name,\n          Shdr<64,_true> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (comma_expression "_true> *object,uint shndx,char *name,\n          Shdr<64,_true> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off" (binary_expression "_true> *object" identifier > (pointer_expression "*object" * identifier)) , (ERROR "uint shndx,char *name,\n          Shdr<64,_true> *shdr,uint sh_type,uint" identifier (comma_expression "shndx,char *name,\n          Shdr<64,_true> *shdr,uint sh_type,uint" identifier , (comma_expression "char *name,\n          Shdr<64,_true> *shdr,uint sh_type,uint" (binary_expression "char *name" identifier * identifier) , (comma_expression "Shdr<64,_true> *shdr,uint sh_type,uint" (binary_expression "Shdr<64" identifier < number_literal) , (comma_expression "_true> *shdr,uint sh_type,uint" (binary_expression "_true> *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  General_options *pGVar1;\n  Elf_WXword EVar2;\n  _Base_ptr p_Var3;\n  Script_options *pSVar4;\n  uint uVar5;\n  uint uVar6;\n  bool bVar7;\n  Output_section_order OVar8;\n  int iVar9;\n  char *pcVar10;\n  Output_section *this_00;\n  iterator iVar11;\n  off_t oVar12;\n  ulong uVar13;\n  long lVar14;\n  char cVar15;\n  size_t __n;\n  Target *pTVar16;\n  byte *pbVar17;\n  Target *this_01;\n  byte *pbVar19;\n  undefined1 uVar20;\n  bool bVar21;\n  undefined1 uVar22;\n  bool bVar23;\n  byte bVar24;\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 *pTVar18;\n  \n  bVar24 = 0;\n  *off = 0;\n  bVar7 = include_section<64,_true>(this,object,name,shdr);\n  if (!bVar7) {\n    return (Output_section *)0x0;\n  }\n  pGVar1 = parameters->options_;\n  if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n  if ((pGVar1->relocatable_).value == false) {\nLAB_001bb56b:\n    uVar20 = 0;\n    uVar22 = (pGVar1->text_unlikely_segment_).value == false;\n    if (!(bool)uVar22) {\n      (*(object->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);\n      lVar14 = 0xe;\n      pTVar16 = (Target *)".text.unlikely";\n      pTVar18 = (Target *)name_key;\n      do {\n        this_01 = pTVar18;\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        this_01 = pTVar18 + (ulong)bVar24 * -2 + 1;\n        uVar20 = (byte)*pTVar16 < (byte)*pTVar18;\n        uVar22 = *pTVar16 == *pTVar18;\n        pTVar16 = pTVar16 + (ulong)bVar24 * -2 + 1;\n        pTVar18 = this_01;\n      } while ((bool)uVar22);\n      if ((!(bool)uVar20 && !(bool)uVar22) == (bool)uVar20) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        EVar2 = shdr->p_->sh_flags;\n        uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001bbb53;\n        uVar6 = uVar5 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001bb748;\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    iVar11 = 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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7) {\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar14 = 7;\n    pbVar17 = (byte *)".dtors.";\n    pbVar19 = (byte *)name;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar21 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);\n    bVar23 = false;\n    bVar7 = (!bVar21 && !bVar7) == bVar21;\n    if (bVar7) goto LAB_001bb830;\n    lVar14 = 0xc;\n    pbVar17 = (byte *)".init_array.";\n    pbVar19 = (byte *)name;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar23 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);\n    bVar21 = false;\n    bVar7 = (!bVar23 && !bVar7) == bVar23;\n    if (bVar7) goto LAB_001bb830;\n    lVar14 = 0xc;\n    pbVar17 = (byte *)".fini_array.";\n    pbVar19 = (byte *)name;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar21 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);\n    if ((!bVar21 && !bVar7) == bVar21) goto LAB_001bb830;\n    bVar7 = false;\n    bVar23 = (pGVar1->ctors_in_init_array_).value == false;\n    if (!bVar23) {\n      lVar14 = 7;\n      pbVar17 = (byte *)name;\n      pbVar19 = (byte *)".ctors";\n      do {\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        bVar7 = *pbVar17 < *pbVar19;\n        bVar23 = *pbVar17 == *pbVar19;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n        pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar7 = (!bVar7 && !bVar23) == bVar7;\n      if (!bVar7) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".dtors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar21 = *pbVar17 < *pbVar19;\n          bVar7 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar7);\n        if ((!bVar21 && !bVar7) != bVar21) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if ((pGVar1->text_reorder_).value != false) goto LAB_001bb854;\nLAB_001bb97e:\n    cVar15 = (pGVar1->relocatable_).value;\nLAB_001bb986:\n    if (cVar15 == '\0') {\nLAB_001bb98e:\n      uVar13 = shdr->p_->sh_size;\n      uVar13 = uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 | (uVar13 & 0xff00) << 0x28\n               | uVar13 << 0x38;\n      bVar7 = uVar13 < 8;\n      bVar23 = uVar13 == 8;\n      if (8 < uVar13) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".ctors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar7 = *pbVar17 < *pbVar19;\n          bVar23 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar7 = (!bVar7 && !bVar23) == bVar7;\n        if (bVar7) {\nLAB_001bb9d7:\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".init_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) goto LAB_001bba30;\n        }\n        else {\n          lVar14 = 7;\n          pbVar17 = (byte *)".ctors.";\n          pbVar19 = (byte *)name;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar21 && !bVar7) == bVar21;\n          if (bVar7) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar23 = false;\n          lVar14 = 7;\n          pbVar17 = (byte *)name;\n          pbVar19 = (byte *)".dtors";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar21 = false;\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".fini_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;\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        cVar15 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001bb87a;\n      }\n    }\n  }\nLAB_001bb878:\n  cVar15 = false;\nLAB_001bb87a:\n  uVar13 = this_00->flags_;\n  oVar12 = Output_section::add_input_section<64,_true>\n                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar15);\n  *off = oVar12;\n  if (((uVar13 & 2) != 0) && (((uint)uVar13 & 5) != ((uint)this_00->flags_ & 5))) {\n    OVar8 = default_section_order(this,this_00,false);\n    this_00->order_ = OVar8;\n  }\n  this->have_added_input_section_ = true;\n  return this_00;\n}" { (declaration "General_options *pGVar1;" type_identifier (pointer_declarator "*pGVar1" * identifier) ;) (declaration "Elf_WXword EVar2;" type_identifier identifier ;) (declaration "_Base_ptr p_Var3;" type_identifier identifier ;) (declaration "Script_options *pSVar4;" type_identifier (pointer_declarator "*pSVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "Output_section_order OVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "Output_section *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "iterator iVar11;" type_identifier identifier ;) (declaration "off_t oVar12;" type_identifier identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "char cVar15;" primitive_type identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "Target *pTVar16;" type_identifier (pointer_declarator "*pTVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "Target *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "undefined1 uVar20;" type_identifier identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "undefined1 uVar22;" type_identifier identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "byte bVar24;" 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 *pTVar18;" type_identifier (pointer_declarator "*pTVar18" * identifier) ;) (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "*off = 0;" (assignment_expression "*off = 0" (pointer_expression "*off" * identifier) = number_literal) ;) (expression_statement "bVar7 = include_section<64,_true>(this,object,name,shdr);" (comma_expression "bVar7 = include_section<64,_true>(this,object,name,shdr)" (assignment_expression "bVar7 = include_section<64" identifier = (binary_expression "include_section<64" identifier < number_literal)) , (binary_expression "_true>(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 (!bVar7) {\n    return (Output_section *)0x0;\n  }" if (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! 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 "pGVar1 = parameters->options_;" (assignment_expression "pGVar1 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;" if (parenthesized_expression "(pGVar1 == (General_options *)0x0)" ( (binary_expression "pGVar1 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001bba79;" goto statement_identifier ;)) (if_statement "if ((pGVar1->relocatable_).value == false) {\nLAB_001bb56b:\n    uVar20 = 0;\n    uVar22 = (pGVar1->text_unlikely_segment_).value == false;\n    if (!(bool)uVar22) {\n      (*(object->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);\n      lVar14 = 0xe;\n      pTVar16 = (Target *)".text.unlikely";\n      pTVar18 = (Target *)name_key;\n      do {\n        this_01 = pTVar18;\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        this_01 = pTVar18 + (ulong)bVar24 * -2 + 1;\n        uVar20 = (byte)*pTVar16 < (byte)*pTVar18;\n        uVar22 = *pTVar16 == *pTVar18;\n        pTVar16 = pTVar16 + (ulong)bVar24 * -2 + 1;\n        pTVar18 = this_01;\n      } while ((bool)uVar22);\n      if ((!(bool)uVar20 && !(bool)uVar22) == (bool)uVar20) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        EVar2 = shdr->p_->sh_flags;\n        uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001bbb53;\n        uVar6 = uVar5 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001bb748;\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    iVar11 = 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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7) {\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar14 = 7;\n    pbVar17 = (byte *)".dtors.";\n    pbVar19 = (byte *)name;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar21 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);\n    bVar23 = false;\n    bVar7 = (!bVar21 && !bVar7) == bVar21;\n    if (bVar7) goto LAB_001bb830;\n    lVar14 = 0xc;\n    pbVar17 = (byte *)".init_array.";\n    pbVar19 = (byte *)name;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar23 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);\n    bVar21 = false;\n    bVar7 = (!bVar23 && !bVar7) == bVar23;\n    if (bVar7) goto LAB_001bb830;\n    lVar14 = 0xc;\n    pbVar17 = (byte *)".fini_array.";\n    pbVar19 = (byte *)name;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar21 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);\n    if ((!bVar21 && !bVar7) == bVar21) goto LAB_001bb830;\n    bVar7 = false;\n    bVar23 = (pGVar1->ctors_in_init_array_).value == false;\n    if (!bVar23) {\n      lVar14 = 7;\n      pbVar17 = (byte *)name;\n      pbVar19 = (byte *)".ctors";\n      do {\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        bVar7 = *pbVar17 < *pbVar19;\n        bVar23 = *pbVar17 == *pbVar19;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n        pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar7 = (!bVar7 && !bVar23) == bVar7;\n      if (!bVar7) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".dtors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar21 = *pbVar17 < *pbVar19;\n          bVar7 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar7);\n        if ((!bVar21 && !bVar7) != bVar21) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if ((pGVar1->text_reorder_).value != false) goto LAB_001bb854;\nLAB_001bb97e:\n    cVar15 = (pGVar1->relocatable_).value;\nLAB_001bb986:\n    if (cVar15 == '\0') {\nLAB_001bb98e:\n      uVar13 = shdr->p_->sh_size;\n      uVar13 = uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 | (uVar13 & 0xff00) << 0x28\n               | uVar13 << 0x38;\n      bVar7 = uVar13 < 8;\n      bVar23 = uVar13 == 8;\n      if (8 < uVar13) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".ctors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar7 = *pbVar17 < *pbVar19;\n          bVar23 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar7 = (!bVar7 && !bVar23) == bVar7;\n        if (bVar7) {\nLAB_001bb9d7:\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".init_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) goto LAB_001bba30;\n        }\n        else {\n          lVar14 = 7;\n          pbVar17 = (byte *)".ctors.";\n          pbVar19 = (byte *)name;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar21 && !bVar7) == bVar21;\n          if (bVar7) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar23 = false;\n          lVar14 = 7;\n          pbVar17 = (byte *)name;\n          pbVar19 = (byte *)".dtors";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar21 = false;\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".fini_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;\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        cVar15 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001bb87a;\n      }\n    }\n  }" if (parenthesized_expression "((pGVar1->relocatable_).value == false)" ( (binary_expression "(pGVar1->relocatable_).value == false" (field_expression "(pGVar1->relocatable_).value" (parenthesized_expression "(pGVar1->relocatable_)" ( (field_expression "pGVar1->relocatable_" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\nLAB_001bb56b:\n    uVar20 = 0;\n    uVar22 = (pGVar1->text_unlikely_segment_).value == false;\n    if (!(bool)uVar22) {\n      (*(object->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);\n      lVar14 = 0xe;\n      pTVar16 = (Target *)".text.unlikely";\n      pTVar18 = (Target *)name_key;\n      do {\n        this_01 = pTVar18;\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        this_01 = pTVar18 + (ulong)bVar24 * -2 + 1;\n        uVar20 = (byte)*pTVar16 < (byte)*pTVar18;\n        uVar22 = *pTVar16 == *pTVar18;\n        pTVar16 = pTVar16 + (ulong)bVar24 * -2 + 1;\n        pTVar18 = this_01;\n      } while ((bool)uVar22);\n      if ((!(bool)uVar20 && !(bool)uVar22) == (bool)uVar20) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        EVar2 = shdr->p_->sh_flags;\n        uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001bbb53;\n        uVar6 = uVar5 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001bb748;\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    iVar11 = 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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7) {\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar14 = 7;\n    pbVar17 = (byte *)".dtors.";\n    pbVar19 = (byte *)name;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar21 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);\n    bVar23 = false;\n    bVar7 = (!bVar21 && !bVar7) == bVar21;\n    if (bVar7) goto LAB_001bb830;\n    lVar14 = 0xc;\n    pbVar17 = (byte *)".init_array.";\n    pbVar19 = (byte *)name;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar23 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);\n    bVar21 = false;\n    bVar7 = (!bVar23 && !bVar7) == bVar23;\n    if (bVar7) goto LAB_001bb830;\n    lVar14 = 0xc;\n    pbVar17 = (byte *)".fini_array.";\n    pbVar19 = (byte *)name;\n    do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar21 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);\n    if ((!bVar21 && !bVar7) == bVar21) goto LAB_001bb830;\n    bVar7 = false;\n    bVar23 = (pGVar1->ctors_in_init_array_).value == false;\n    if (!bVar23) {\n      lVar14 = 7;\n      pbVar17 = (byte *)name;\n      pbVar19 = (byte *)".ctors";\n      do {\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        bVar7 = *pbVar17 < *pbVar19;\n        bVar23 = *pbVar17 == *pbVar19;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n        pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar7 = (!bVar7 && !bVar23) == bVar7;\n      if (!bVar7) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".dtors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar21 = *pbVar17 < *pbVar19;\n          bVar7 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar7);\n        if ((!bVar21 && !bVar7) != bVar21) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if ((pGVar1->text_reorder_).value != false) goto LAB_001bb854;\nLAB_001bb97e:\n    cVar15 = (pGVar1->relocatable_).value;\nLAB_001bb986:\n    if (cVar15 == '\0') {\nLAB_001bb98e:\n      uVar13 = shdr->p_->sh_size;\n      uVar13 = uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 | (uVar13 & 0xff00) << 0x28\n               | uVar13 << 0x38;\n      bVar7 = uVar13 < 8;\n      bVar23 = uVar13 == 8;\n      if (8 < uVar13) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".ctors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar7 = *pbVar17 < *pbVar19;\n          bVar23 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar7 = (!bVar7 && !bVar23) == bVar7;\n        if (bVar7) {\nLAB_001bb9d7:\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".init_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) goto LAB_001bba30;\n        }\n        else {\n          lVar14 = 7;\n          pbVar17 = (byte *)".ctors.";\n          pbVar19 = (byte *)name;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar21 && !bVar7) == bVar21;\n          if (bVar7) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar23 = false;\n          lVar14 = 7;\n          pbVar17 = (byte *)name;\n          pbVar19 = (byte *)".dtors";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar21 = false;\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".fini_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;\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        cVar15 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001bb87a;\n      }\n    }\n  }" { (labeled_statement "LAB_001bb56b:\n    uVar20 = 0;" statement_identifier : (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;)) (expression_statement "uVar22 = (pGVar1->text_unlikely_segment_).value == false;" (assignment_expression "uVar22 = (pGVar1->text_unlikely_segment_).value == false" identifier = (binary_expression "(pGVar1->text_unlikely_segment_).value == false" (field_expression "(pGVar1->text_unlikely_segment_).value" (parenthesized_expression "(pGVar1->text_unlikely_segment_)" ( (field_expression "pGVar1->text_unlikely_segment_" identifier -> field_identifier) )) . field_identifier) == false)) ;) (if_statement "if (!(bool)uVar22) {\n      (*(object->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);\n      lVar14 = 0xe;\n      pTVar16 = (Target *)".text.unlikely";\n      pTVar18 = (Target *)name_key;\n      do {\n        this_01 = pTVar18;\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        this_01 = pTVar18 + (ulong)bVar24 * -2 + 1;\n        uVar20 = (byte)*pTVar16 < (byte)*pTVar18;\n        uVar22 = *pTVar16 == *pTVar18;\n        pTVar16 = pTVar16 + (ulong)bVar24 * -2 + 1;\n        pTVar18 = this_01;\n      } while ((bool)uVar22);\n      if ((!(bool)uVar20 && !(bool)uVar22) == (bool)uVar20) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        EVar2 = shdr->p_->sh_flags;\n        uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001bbb53;\n        uVar6 = uVar5 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001bb748;\n      }\n      if ((undefined1 *)name_key != local_48) {\n        operator_delete((void *)name_key);\n      }\n    }" if (parenthesized_expression "(!(bool)uVar22)" ( (unary_expression "!(bool)uVar22" ! (cast_expression "(bool)uVar22" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      (*(object->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                ((pair<const_gold::Relobj*,_unsigned_int> *)&name_key,object,(ulong)shndx);\n      lVar14 = 0xe;\n      pTVar16 = (Target *)".text.unlikely";\n      pTVar18 = (Target *)name_key;\n      do {\n        this_01 = pTVar18;\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        this_01 = pTVar18 + (ulong)bVar24 * -2 + 1;\n        uVar20 = (byte)*pTVar16 < (byte)*pTVar18;\n        uVar22 = *pTVar16 == *pTVar18;\n        pTVar16 = pTVar16 + (ulong)bVar24 * -2 + 1;\n        pTVar18 = this_01;\n      } while ((bool)uVar22);\n      if ((!(bool)uVar20 && !(bool)uVar22) == (bool)uVar20) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        EVar2 = shdr->p_->sh_flags;\n        uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001bbb53;\n        uVar6 = uVar5 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001bb748;\n      }\n      if ((undefined1 *)name_key != local_48) {\n        operator_delete((void *)name_key);\n      }\n    }" { (expression_statement "(*(object->super_Sized_relobj<64,_true>).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<64,_true>).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<64,_true>).super_Relobj.super_Object._vptr_Object[0x10])" ( (pointer_expression "*(object->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object[0x10]" * (subscript_expression "(object->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object[0x10]" (field_expression "(object->super_Sized_relobj<64,_true>).super_Relobj.super_Object._vptr_Object" (field_expression "(object->super_Sized_relobj<64,_true>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<64,_true>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<64,_true>)" ( (comma_expression "object->super_Sized_relobj<64,_true" (binary_expression "object->super_Sized_relobj<64" (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 "lVar14 = 0xe;" (assignment_expression "lVar14 = 0xe" identifier = number_literal) ;) (expression_statement "pTVar16 = (Target *)".text.unlikely";" (assignment_expression "pTVar16 = (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 "pTVar18 = (Target *)name_key;" (assignment_expression "pTVar18 = (Target *)name_key" identifier = (cast_expression "(Target *)name_key" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n        this_01 = pTVar18;\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        this_01 = pTVar18 + (ulong)bVar24 * -2 + 1;\n        uVar20 = (byte)*pTVar16 < (byte)*pTVar18;\n        uVar22 = *pTVar16 == *pTVar18;\n        pTVar16 = pTVar16 + (ulong)bVar24 * -2 + 1;\n        pTVar18 = this_01;\n      } while ((bool)uVar22);" do (compound_statement "{\n        this_01 = pTVar18;\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        this_01 = pTVar18 + (ulong)bVar24 * -2 + 1;\n        uVar20 = (byte)*pTVar16 < (byte)*pTVar18;\n        uVar22 = *pTVar16 == *pTVar18;\n        pTVar16 = pTVar16 + (ulong)bVar24 * -2 + 1;\n        pTVar18 = this_01;\n      }" { (expression_statement "this_01 = pTVar18;" (assignment_expression "this_01 = pTVar18" identifier = identifier) ;) (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "this_01 = pTVar18 + (ulong)bVar24 * -2 + 1;" (assignment_expression "this_01 = pTVar18 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pTVar18 + (ulong)bVar24 * -2 + 1" (binary_expression "pTVar18 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "uVar20 = (byte)*pTVar16 < (byte)*pTVar18;" (assignment_expression "uVar20 = (byte)*pTVar16 < (byte)*pTVar18" identifier = (binary_expression "(byte)*pTVar16 < (byte)*pTVar18" (binary_expression "(byte)*pTVar16" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pTVar18" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "uVar22 = *pTVar16 == *pTVar18;" (assignment_expression "uVar22 = *pTVar16 == *pTVar18" identifier = (binary_expression "*pTVar16 == *pTVar18" (pointer_expression "*pTVar16" * identifier) == (pointer_expression "*pTVar18" * identifier))) ;) (expression_statement "pTVar16 = pTVar16 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pTVar16 = pTVar16 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pTVar16 + (ulong)bVar24 * -2 + 1" (binary_expression "pTVar16 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pTVar18 = this_01;" (assignment_expression "pTVar18 = this_01" identifier = identifier) ;) }) while (parenthesized_expression "((bool)uVar22)" ( (cast_expression "(bool)uVar22" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar20 && !(bool)uVar22) == (bool)uVar20) {\n        if ((undefined1 *)name_key != local_48) {\n          this_01 = (Target *)name_key;\n          operator_delete((void *)name_key);\n        }\n        EVar2 = shdr->p_->sh_flags;\n        uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001bbb53;\n        uVar6 = uVar5 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001bb748;\n      }" if (parenthesized_expression "((!(bool)uVar20 && !(bool)uVar22) == (bool)uVar20)" ( (binary_expression "(!(bool)uVar20 && !(bool)uVar22) == (bool)uVar20" (parenthesized_expression "(!(bool)uVar20 && !(bool)uVar22)" ( (binary_expression "!(bool)uVar20 && !(bool)uVar22" (unary_expression "!(bool)uVar20" ! (cast_expression "(bool)uVar20" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar22" ! (cast_expression "(bool)uVar22" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar20" ( (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        EVar2 = shdr->p_->sh_flags;\n        uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n        if (parameters->options_ == (General_options *)0x0) goto LAB_001bbb53;\n        uVar6 = uVar5 & 0xfffff50f;\n        if ((parameters->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);\n        this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        goto LAB_001bb748;\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 "EVar2 = shdr->p_->sh_flags;" (assignment_expression "EVar2 = shdr->p_->sh_flags" identifier = (field_expression "shdr->p_->sh_flags" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;" (assignment_expression "uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8" identifier = (binary_expression "(uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8" (call_expression "(uint)(byte)(EVar2 >> 0x38)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(EVar2 >> 0x38)" ( (binary_expression "EVar2 >> 0x38" identifier >> number_literal) ))) | (binary_expression "((uint)(EVar2 >> 0x20) & 0xff0000) >> 8" (parenthesized_expression "((uint)(EVar2 >> 0x20) & 0xff0000)" ( (binary_expression "(uint)(EVar2 >> 0x20) & 0xff0000" (call_expression "(uint)(EVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(EVar2 >> 0x20)" ( (binary_expression "EVar2 >> 0x20" identifier >> number_literal) ))) & number_literal) )) >> number_literal))) ;) (if_statement "if (parameters->options_ == (General_options *)0x0) goto LAB_001bbb53;" 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_001bbb53;" goto statement_identifier ;)) (expression_statement "uVar6 = uVar5 & 0xfffff50f;" (assignment_expression "uVar6 = uVar5 & 0xfffff50f" identifier = (binary_expression "uVar5 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if ((parameters->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 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          uVar6 = uVar5 & 0xfffff58f;\n        }" { (expression_statement "uVar6 = uVar5 & 0xfffff58f;" (assignment_expression "uVar6 = uVar5 & 0xfffff58f" identifier = (binary_expression "uVar5 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "pcVar10 = Stringpool_template<char>::add(&this->namepool_,".text.unlikely",true,&name_key);" (assignment_expression "pcVar10 = 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,pcVar10,name_key,sh_type,\n                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);" (assignment_expression "this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false)" identifier = (call_expression "get_output_section(this,pcVar10,name_key,sh_type,\n                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false)" identifier (argument_list "(this,pcVar10,name_key,sh_type,\n                                     (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false)" ( identifier , identifier , identifier , identifier , (call_expression "(ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000)" ( (binary_expression "uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                            (uint)(EVar2 >> 8) & 0xff000000" (binary_expression "uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000" identifier | (binary_expression "(uint)(EVar2 >> 0x18) & 0xff0000" (call_expression "(uint)(EVar2 >> 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(EVar2 >> 0x18)" ( (binary_expression "EVar2 >> 0x18" identifier >> number_literal) ))) & number_literal)) | (binary_expression "(uint)(EVar2 >> 8) & 0xff000000" (call_expression "(uint)(EVar2 >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(EVar2 >> 8)" ( (binary_expression "EVar2 >> 8" identifier >> number_literal) ))) & number_literal)) ))) , 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_001bb748;" 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 "iVar11 = 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 "iVar11 = 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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7) {\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar14 = 7;\n    pbVar17 = (byte *)".dtors.";\n    pbVar19 = (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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7) {\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar14 = 7;\n    pbVar17 = (byte *)".dtors.";\n    pbVar19 = (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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7) {\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar14 = 7;\n    pbVar17 = (byte *)".dtors.";\n    pbVar19 = (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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7) {\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar14 = 7;\n    pbVar17 = (byte *)".dtors.";\n    pbVar19 = (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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7) {\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar14 = 7;\n    pbVar17 = (byte *)".dtors.";\n    pbVar19 = (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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7) {\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar14 = 7;\n    pbVar17 = (byte *)".dtors.";\n    pbVar19" (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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7) {\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar14 = 7;\n    pbVar17 = (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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7) {\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar14 = 7;\n    pbVar17 = (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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {\n      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }\nLAB_001bb748:\n  pSVar4 = this->script_options_;\n  cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n  pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false) {\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (pGVar1 == (General_options *)0x0) {\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar7 = false;\n  bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23) goto LAB_001bb970;\n  lVar14 = 7;\n  pbVar17 = (byte *)".ctors.";\n  pbVar19 = (byte *)name;\n  do {\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7)" (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 *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header)" ( (binary_expression "(_Rb_tree_header *)iVar11._M_node ==\n        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header" (cast_expression "(_Rb_tree_header *)iVar11._M_node" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "iVar11._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      uVar13 = shdr->p_->sh_flags;\n      this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);\n      if (this_00 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }" { (expression_statement "uVar13 = shdr->p_->sh_flags;" (assignment_expression "uVar13 = shdr->p_->sh_flags" identifier = (field_expression "shdr->p_->sh_flags" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true);" (assignment_expression "this_00 = choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true)" identifier = (call_expression "choose_output_section\n                          (this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true)" identifier (argument_list "(this,(Relobj *)object,name,sh_type,\n                           uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38,true,ORDER_INVALID,false,false\n                           ,true)" ( identifier , (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38" (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |\n                           (uVar13 & 0xff00) << 0x28" (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18" (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n                           (uVar13 & 0xff000000) << 8" (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8" (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n                           (uVar13 & 0xff0000000000) >> 0x18" (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28" (binary_expression "uVar13 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar13 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar13 & 0xff000000000000)" ( (binary_expression "uVar13 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar13 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar13 & 0xff0000000000)" ( (binary_expression "uVar13 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar13 & 0xff00000000) >> 8" (parenthesized_expression "(uVar13 & 0xff00000000)" ( (binary_expression "uVar13 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar13 & 0xff000000) << 8" (parenthesized_expression "(uVar13 & 0xff000000)" ( (binary_expression "uVar13 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar13 & 0xff0000) << 0x18" (parenthesized_expression "(uVar13 & 0xff0000)" ( (binary_expression "uVar13 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar13 & 0xff00) << 0x28" (parenthesized_expression "(uVar13 & 0xff00)" ( (binary_expression "uVar13 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar13 << 0x38" identifier << number_literal)) , 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      EVar2 = shdr->p_->sh_flags;\n      uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;\n      if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }\n      uVar6 = uVar5 & 0xfffff50f;\n      if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 0xfffff58f;\n      }\n      pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);\n      this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);\n      if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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 "EVar2 = shdr->p_->sh_flags;" (assignment_expression "EVar2 = shdr->p_->sh_flags" identifier = (field_expression "shdr->p_->sh_flags" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8;" (assignment_expression "uVar5 = (uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8" identifier = (binary_expression "(uint)(byte)(EVar2 >> 0x38) | ((uint)(EVar2 >> 0x20) & 0xff0000) >> 8" (call_expression "(uint)(byte)(EVar2 >> 0x38)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(EVar2 >> 0x38)" ( (binary_expression "EVar2 >> 0x38" identifier >> number_literal) ))) | (binary_expression "((uint)(EVar2 >> 0x20) & 0xff0000) >> 8" (parenthesized_expression "((uint)(EVar2 >> 0x20) & 0xff0000)" ( (binary_expression "(uint)(EVar2 >> 0x20) & 0xff0000" (call_expression "(uint)(EVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(EVar2 >> 0x20)" ( (binary_expression "EVar2 >> 0x20" identifier >> number_literal) ))) & number_literal) )) >> number_literal))) ;) (if_statement "if (parameters->options_ == (General_options *)0x0) {\nLAB_001bbb53:\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_001bbb53:\n                    /* WARNING: Subroutine does not return */\n        Target::abi_pagesize(this_01);\n      }" { (labeled_statement "LAB_001bbb53:\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 "uVar6 = uVar5 & 0xfffff50f;" (assignment_expression "uVar6 = uVar5 & 0xfffff50f" identifier = (binary_expression "uVar5 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if ((parameters->options_->relocatable_).value != false) {\n        uVar6 = uVar5 & 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        uVar6 = uVar5 & 0xfffff58f;\n      }" { (expression_statement "uVar6 = uVar5 & 0xfffff58f;" (assignment_expression "uVar6 = uVar5 & 0xfffff58f" identifier = (binary_expression "uVar5 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key);" (assignment_expression "pcVar10 = Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key)" identifier = (binary_expression "Stringpool_template<char>::add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add\n                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key)" identifier (argument_list "(&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&name_key)" ( (pointer_expression "&this->namepool_" & (field_expression "this->namepool_" identifier -> field_identifier)) , (pointer_expression "*(char **)iVar11._M_node[1]._M_left" * (cast_expression "(char **)iVar11._M_node[1]._M_left" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "iVar11._M_node[1]._M_left" (subscript_expression "iVar11._M_node[1]" (field_expression "iVar11._M_node" identifier . field_identifier) [ number_literal ]) . field_identifier))) , true , (pointer_expression "&name_key" & identifier) ))))) ;) (expression_statement "this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false);" (assignment_expression "this_00 = get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false)" identifier = (call_expression "get_output_section(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false)" identifier (argument_list "(this,pcVar10,name_key,sh_type,\n                                   (ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000),ORDER_INVALID,false)" ( identifier , identifier , identifier , identifier , (call_expression "(ulong)(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000)" ( (binary_expression "uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000 |\n                                          (uint)(EVar2 >> 8) & 0xff000000" (binary_expression "uVar6 | (uint)(EVar2 >> 0x18) & 0xff0000" identifier | (binary_expression "(uint)(EVar2 >> 0x18) & 0xff0000" (call_expression "(uint)(EVar2 >> 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(EVar2 >> 0x18)" ( (binary_expression "EVar2 >> 0x18" identifier >> number_literal) ))) & number_literal)) | (binary_expression "(uint)(EVar2 >> 8) & 0xff000000" (call_expression "(uint)(EVar2 >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(EVar2 >> 8)" ( (binary_expression "EVar2 >> 8" identifier >> number_literal) ))) & number_literal)) ))) , identifier , false )))) ;) (if_statement "if (-1 < (char)this_00->field_0xca) {\n        this_00->field_0xca = this_00->field_0xca | 0x80;\n        p_Var3 = iVar11._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 = iVar11._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 = iVar11._M_node[1]._M_left;" (assignment_expression "p_Var3 = iVar11._M_node[1]._M_left" identifier = (field_expression "iVar11._M_node[1]._M_left" (subscript_expression "iVar11._M_node[1]" (field_expression "iVar11._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 (compound_statement "{\n    uVar13 = shdr->p_->sh_flags;\n    if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);\n  }" { (expression_statement "uVar13 = shdr->p_->sh_flags;" (assignment_expression "uVar13 = shdr->p_->sh_flags" identifier = (field_expression "shdr->p_->sh_flags" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;" if (parenthesized_expression "(((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0)" ( (binary_expression "((uVar13 & 0xff000000000000) >> 0x28 & 0x200) == 0" (parenthesized_expression "((uVar13 & 0xff000000000000) >> 0x28 & 0x200)" ( (binary_expression "(uVar13 & 0xff000000000000) >> 0x28 & 0x200" (binary_expression "(uVar13 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar13 & 0xff000000000000)" ( (binary_expression "uVar13 & 0xff000000000000" identifier & number_literal) )) >> number_literal) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001bb56b;" goto statement_identifier ;)) (expression_statement "name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);" (assignment_expression "name = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0)" identifier = (binary_expression "Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (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) ))))) ;) (expression_statement "this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false);" (assignment_expression "this_00 = make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false)" identifier = (call_expression "make_output_section(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false)" identifier (argument_list "(this,name,sh_type,\n                                  (ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000),ORDER_INVALID,false)" ( identifier , identifier , identifier , (call_expression "(ulong)((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000)" ( (binary_expression "(uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000 |\n                                         (uint)(uVar13 >> 8) & 0xff000000" (binary_expression "(uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                                          (uint)(uVar13 >> 0x18) & 0xff0000" (binary_expression "(uint)(byte)(uVar13 >> 0x38) |\n                                          (uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff" (call_expression "(uint)(byte)(uVar13 >> 0x38)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar13 >> 0x38)" ( (binary_expression "uVar13 >> 0x38" identifier >> number_literal) ))) | (binary_expression "(uint)((uVar13 & 0xff000000000000) >> 0x28) & 0xfffff7ff" (call_expression "(uint)((uVar13 & 0xff000000000000) >> 0x28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar13 & 0xff000000000000) >> 0x28)" ( (binary_expression "(uVar13 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar13 & 0xff000000000000)" ( (binary_expression "uVar13 & 0xff000000000000" identifier & number_literal) )) >> number_literal) ))) & number_literal)) | (binary_expression "(uint)(uVar13 >> 0x18) & 0xff0000" (call_expression "(uint)(uVar13 >> 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 >> 0x18)" ( (binary_expression "uVar13 >> 0x18" identifier >> number_literal) ))) & number_literal)) | (binary_expression "(uint)(uVar13 >> 8) & 0xff000000" (call_expression "(uint)(uVar13 >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 >> 8)" ( (binary_expression "uVar13 >> 8" identifier >> number_literal) ))) & number_literal)) ))) , identifier , false )))) ;) }) identifier : (assignment_expression "pSVar4 = this->script_options_" identifier = (field_expression "this->script_options_" identifier -> field_identifier)) ; (assignment_expression "cVar15 = (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 "pGVar1 = parameters->options_;\n  if ((bool)cVar15 != false)" (assignment_expression "pGVar1 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) (ERROR ";\n  if" ; if) (argument_list "((bool)cVar15 != false)" ( (binary_expression "(bool)cVar15 != false" (cast_expression "(bool)cVar15" ( (type_descriptor "bool" primitive_type) ) identifier) != false) ))) (compound_statement "{\n    if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }" { (if_statement "if (pGVar1 == (General_options *)0x0) goto LAB_001bba79;" if (parenthesized_expression "(pGVar1 == (General_options *)0x0)" ( (binary_expression "pGVar1 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001bba79;" goto statement_identifier ;)) (goto_statement "goto LAB_001bb87a;" goto statement_identifier ;) }) if (parenthesized_expression "(pGVar1 == (General_options *)0x0)" ( (binary_expression "pGVar1 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001bba79:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_001bba79:\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 "bVar7 = false" identifier = false) ; (call_expression "bVar23 = (pGVar1->relocatable_).value == false;\n  if (!bVar23)" (assignment_expression "bVar23 = (pGVar1->relocatable_).value == false" identifier = (binary_expression "(pGVar1->relocatable_).value == false" (field_expression "(pGVar1->relocatable_).value" (parenthesized_expression "(pGVar1->relocatable_)" ( (field_expression "pGVar1->relocatable_" identifier -> field_identifier) )) . field_identifier) == false)) (ERROR ";\n  if" ; if) (argument_list "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) ))) identifier identifier ; (assignment_expression "lVar14 = 7" identifier = number_literal) ; (assignment_expression "pbVar17 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ; (assignment_expression "pbVar19 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ; do (compound_statement "{\n    if (lVar14 == 0) break;\n    lVar14 = lVar14 + -1;\n    bVar7 = *pbVar17 < *pbVar19;\n    bVar23 = *pbVar17 == *pbVar19;\n    pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n    pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n  }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar17 < *pbVar19;" (assignment_expression "bVar7 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar19;" (assignment_expression "bVar23 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ; (assignment_expression "bVar21 = false" identifier = false) ; (call_expression "bVar7 = (!bVar7 && !bVar23) == bVar7;\n  if (bVar7)" (assignment_expression "bVar7 = (!bVar7 && !bVar23) == bVar7" identifier = (binary_expression "(!bVar7 && !bVar23) == bVar7" (parenthesized_expression "(!bVar7 && !bVar23)" ( (binary_expression "!bVar7 && !bVar23" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) (ERROR ";\n  if" ; if) (argument_list "(bVar7)" ( identifier )))) (compound_statement "{\nLAB_001bb830:\n    this_00->field_0xc9 = this_00->field_0xc9 | 8;\n    cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n    if ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if ((bool)cVar15 != false) goto LAB_001bb87a;\nLAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;\n    if (this->section_ordering_specified_ != false) goto LAB_001bb986;\n    if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }\n  }" { (labeled_statement "LAB_001bb830:\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 "cVar15 = (pSVar4->script_sections_).saw_sections_clause_;" (assignment_expression "cVar15 = (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 ((pGVar1->text_reorder_).value == false) {\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }" if (parenthesized_expression "((pGVar1->text_reorder_).value == false)" ( (binary_expression "(pGVar1->text_reorder_).value == false" (field_expression "(pGVar1->text_reorder_).value" (parenthesized_expression "(pGVar1->text_reorder_)" ( (field_expression "pGVar1->text_reorder_" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\nLAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }" { (labeled_statement "LAB_001bbaab:\n      if (cVar15 != '\0') goto LAB_001bb87a;" statement_identifier : (if_statement "if (cVar15 != '\0') goto LAB_001bb87a;" if (parenthesized_expression "(cVar15 != '\0')" ( (binary_expression "cVar15 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001bb87a;" goto statement_identifier ;))) (goto_statement "goto LAB_001bb97e;" goto statement_identifier ;) })) (if_statement "if ((bool)cVar15 != false) goto LAB_001bb87a;" if (parenthesized_expression "((bool)cVar15 != false)" ( (binary_expression "(bool)cVar15 != false" (cast_expression "(bool)cVar15" ( (type_descriptor "bool" primitive_type) ) identifier) != false) )) (goto_statement "goto LAB_001bb87a;" goto statement_identifier ;)) (labeled_statement "LAB_001bb854:\n    cVar15 = (pGVar1->relocatable_).value;" statement_identifier : (expression_statement "cVar15 = (pGVar1->relocatable_).value;" (assignment_expression "cVar15 = (pGVar1->relocatable_).value" identifier = (field_expression "(pGVar1->relocatable_).value" (parenthesized_expression "(pGVar1->relocatable_)" ( (field_expression "pGVar1->relocatable_" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if (this->section_ordering_specified_ != false) goto LAB_001bb986;" 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_001bb986;" goto statement_identifier ;)) (if_statement "if ((bool)cVar15 == false) {\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }" if (parenthesized_expression "((bool)cVar15 == false)" ( (binary_expression "(bool)cVar15 == false" (cast_expression "(bool)cVar15" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) (compound_statement "{\n      __n = 0xe;\n      pcVar10 = ".text.unlikely";\n      local_80 = (char **)special_ordering_of_input_section(char_const*)::text_section_sort;\n      while (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }\n      this_00->field_0xc9 = this_00->field_0xc9 | 8;\n      cVar15 = (pSVar4->script_sections_).saw_sections_clause_;\n      goto LAB_001bbaab;\n    }" { (expression_statement "__n = 0xe;" (assignment_expression "__n = 0xe" identifier = number_literal) ;) (expression_statement "pcVar10 = ".text.unlikely";" (assignment_expression "pcVar10 = ".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 (iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\n      }" while (parenthesized_expression "(iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0)" ( (comma_expression "iVar9 = strncmp(pcVar10,name,__n), iVar9 != 0" (assignment_expression "iVar9 = strncmp(pcVar10,name,__n)" identifier = (call_expression "strncmp(pcVar10,name,__n)" identifier (argument_list "(pcVar10,name,__n)" ( identifier , identifier , identifier )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) )) (compound_statement "{\n        local_80 = local_80 + 1;\n        if (local_80 == gdb_fast_lookup_sections) goto LAB_001bb98e;\n        pcVar10 = *local_80;\n        __n = strlen(pcVar10);\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_001bb98e;" if (parenthesized_expression "(local_80 == gdb_fast_lookup_sections)" ( (binary_expression "local_80 == gdb_fast_lookup_sections" identifier == identifier) )) (goto_statement "goto LAB_001bb98e;" goto statement_identifier ;)) (expression_statement "pcVar10 = *local_80;" (assignment_expression "pcVar10 = *local_80" identifier = (pointer_expression "*local_80" * identifier)) ;) (expression_statement "__n = strlen(pcVar10);" (assignment_expression "__n = strlen(pcVar10)" identifier = (call_expression "strlen(pcVar10)" identifier (argument_list "(pcVar10)" ( 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 "cVar15 = (pSVar4->script_sections_).saw_sections_clause_;" (assignment_expression "cVar15 = (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_001bbaab;" goto statement_identifier ;) })) }) (ERROR "else {\n    lVar14 = 7;\n    pbVar17 = (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 (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar21 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);" do (compound_statement "{\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar21 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar17 < *pbVar19;" (assignment_expression "bVar21 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar7 = *pbVar17 == *pbVar19;" (assignment_expression "bVar7 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar7 = (!bVar21 && !bVar7) == bVar21;" (assignment_expression "bVar7 = (!bVar21 && !bVar7) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar7) == bVar21" (parenthesized_expression "(!bVar21 && !bVar7)" ( (binary_expression "!bVar21 && !bVar7" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar7) goto LAB_001bb830;" if (parenthesized_expression "(bVar7)" ( identifier )) (goto_statement "goto LAB_001bb830;" goto statement_identifier ;)) (expression_statement "lVar14 = 0xc;" (assignment_expression "lVar14 = 0xc" identifier = number_literal) ;) (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 "))) ;) (expression_statement "pbVar19 = (byte *)name;" (assignment_expression "pbVar19 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar23 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);" do (compound_statement "{\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar23 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar17 < *pbVar19;" (assignment_expression "bVar23 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar7 = *pbVar17 == *pbVar19;" (assignment_expression "bVar7 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar7 = (!bVar23 && !bVar7) == bVar23;" (assignment_expression "bVar7 = (!bVar23 && !bVar7) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar7) == bVar23" (parenthesized_expression "(!bVar23 && !bVar7)" ( (binary_expression "!bVar23 && !bVar7" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar7) goto LAB_001bb830;" if (parenthesized_expression "(bVar7)" ( identifier )) (goto_statement "goto LAB_001bb830;" goto statement_identifier ;)) (expression_statement "lVar14 = 0xc;" (assignment_expression "lVar14 = 0xc" identifier = number_literal) ;) (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 "))) ;) (expression_statement "pbVar19 = (byte *)name;" (assignment_expression "pbVar19 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar21 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    } while (bVar7);" do (compound_statement "{\n      if (lVar14 == 0) break;\n      lVar14 = lVar14 + -1;\n      bVar21 = *pbVar17 < *pbVar19;\n      bVar7 = *pbVar17 == *pbVar19;\n      pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n      pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n    }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar17 < *pbVar19;" (assignment_expression "bVar21 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar7 = *pbVar17 == *pbVar19;" (assignment_expression "bVar7 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (if_statement "if ((!bVar21 && !bVar7) == bVar21) goto LAB_001bb830;" if (parenthesized_expression "((!bVar21 && !bVar7) == bVar21)" ( (binary_expression "(!bVar21 && !bVar7) == bVar21" (parenthesized_expression "(!bVar21 && !bVar7)" ( (binary_expression "!bVar21 && !bVar7" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_001bb830;" goto statement_identifier ;)) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (expression_statement "bVar23 = (pGVar1->ctors_in_init_array_).value == false;" (assignment_expression "bVar23 = (pGVar1->ctors_in_init_array_).value == false" identifier = (binary_expression "(pGVar1->ctors_in_init_array_).value == false" (field_expression "(pGVar1->ctors_in_init_array_).value" (parenthesized_expression "(pGVar1->ctors_in_init_array_)" ( (field_expression "pGVar1->ctors_in_init_array_" identifier -> field_identifier) )) . field_identifier) == false)) ;) (if_statement "if (!bVar23) {\n      lVar14 = 7;\n      pbVar17 = (byte *)name;\n      pbVar19 = (byte *)".ctors";\n      do {\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        bVar7 = *pbVar17 < *pbVar19;\n        bVar23 = *pbVar17 == *pbVar19;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n        pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar7 = (!bVar7 && !bVar23) == bVar7;\n      if (!bVar7) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".dtors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar21 = *pbVar17 < *pbVar19;\n          bVar7 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar7);\n        if ((!bVar21 && !bVar7) != bVar21) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n      lVar14 = 7;\n      pbVar17 = (byte *)name;\n      pbVar19 = (byte *)".ctors";\n      do {\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        bVar7 = *pbVar17 < *pbVar19;\n        bVar23 = *pbVar17 == *pbVar19;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n        pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar7 = (!bVar7 && !bVar23) == bVar7;\n      if (!bVar7) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".dtors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar21 = *pbVar17 < *pbVar19;\n          bVar7 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar7);\n        if ((!bVar21 && !bVar7) != bVar21) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }" { (expression_statement "lVar14 = 7;" (assignment_expression "lVar14 = 7" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)name;" (assignment_expression "pbVar17 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar19 = (byte *)".ctors";" (assignment_expression "pbVar19 = (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 (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        bVar7 = *pbVar17 < *pbVar19;\n        bVar23 = *pbVar17 == *pbVar19;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n        pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n      } while (bVar23);" do (compound_statement "{\n        if (lVar14 == 0) break;\n        lVar14 = lVar14 + -1;\n        bVar7 = *pbVar17 < *pbVar19;\n        bVar23 = *pbVar17 == *pbVar19;\n        pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n        pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n      }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar17 < *pbVar19;" (assignment_expression "bVar7 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar19;" (assignment_expression "bVar23 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar7 = (!bVar7 && !bVar23) == bVar7;" (assignment_expression "bVar7 = (!bVar7 && !bVar23) == bVar7" identifier = (binary_expression "(!bVar7 && !bVar23) == bVar7" (parenthesized_expression "(!bVar7 && !bVar23)" ( (binary_expression "!bVar7 && !bVar23" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar7) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".dtors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar21 = *pbVar17 < *pbVar19;\n          bVar7 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar7);\n        if ((!bVar21 && !bVar7) != bVar21) goto LAB_001bb970;\n      }" if (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) )) (compound_statement "{\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".dtors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar21 = *pbVar17 < *pbVar19;\n          bVar7 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar7);\n        if ((!bVar21 && !bVar7) != bVar21) goto LAB_001bb970;\n      }" { (expression_statement "lVar14 = 7;" (assignment_expression "lVar14 = 7" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)name;" (assignment_expression "pbVar17 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar19 = (byte *)".dtors";" (assignment_expression "pbVar19 = (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 (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar21 = *pbVar17 < *pbVar19;\n          bVar7 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar7);" do (compound_statement "{\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar21 = *pbVar17 < *pbVar19;\n          bVar7 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar17 < *pbVar19;" (assignment_expression "bVar21 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar7 = *pbVar17 == *pbVar19;" (assignment_expression "bVar7 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (if_statement "if ((!bVar21 && !bVar7) != bVar21) goto LAB_001bb970;" if (parenthesized_expression "((!bVar21 && !bVar7) != bVar21)" ( (binary_expression "(!bVar21 && !bVar7) != bVar21" (parenthesized_expression "(!bVar21 && !bVar7)" ( (binary_expression "!bVar21 && !bVar7" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001bb970;" goto statement_identifier ;)) })) (goto_statement "goto LAB_001bb830;" goto statement_identifier ;) })) (labeled_statement "LAB_001bb970:\n    if ((pGVar1->text_reorder_).value != false) goto LAB_001bb854;" statement_identifier : (if_statement "if ((pGVar1->text_reorder_).value != false) goto LAB_001bb854;" if (parenthesized_expression "((pGVar1->text_reorder_).value != false)" ( (binary_expression "(pGVar1->text_reorder_).value != false" (field_expression "(pGVar1->text_reorder_).value" (parenthesized_expression "(pGVar1->text_reorder_)" ( (field_expression "pGVar1->text_reorder_" identifier -> field_identifier) )) . field_identifier) != false) )) (goto_statement "goto LAB_001bb854;" goto statement_identifier ;))) (labeled_statement "LAB_001bb97e:\n    cVar15 = (pGVar1->relocatable_).value;" statement_identifier : (expression_statement "cVar15 = (pGVar1->relocatable_).value;" (assignment_expression "cVar15 = (pGVar1->relocatable_).value" identifier = (field_expression "(pGVar1->relocatable_).value" (parenthesized_expression "(pGVar1->relocatable_)" ( (field_expression "pGVar1->relocatable_" identifier -> field_identifier) )) . field_identifier)) ;)) (labeled_statement "LAB_001bb986:\n    if (cVar15 == '\0') {\nLAB_001bb98e:\n      uVar13 = shdr->p_->sh_size;\n      uVar13 = uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 | (uVar13 & 0xff00) << 0x28\n               | uVar13 << 0x38;\n      bVar7 = uVar13 < 8;\n      bVar23 = uVar13 == 8;\n      if (8 < uVar13) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".ctors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar7 = *pbVar17 < *pbVar19;\n          bVar23 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar7 = (!bVar7 && !bVar23) == bVar7;\n        if (bVar7) {\nLAB_001bb9d7:\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".init_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) goto LAB_001bba30;\n        }\n        else {\n          lVar14 = 7;\n          pbVar17 = (byte *)".ctors.";\n          pbVar19 = (byte *)name;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar21 && !bVar7) == bVar21;\n          if (bVar7) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar23 = false;\n          lVar14 = 7;\n          pbVar17 = (byte *)name;\n          pbVar19 = (byte *)".dtors";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar21 = false;\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".fini_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;\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        cVar15 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001bb87a;\n      }\n    }" statement_identifier : (if_statement "if (cVar15 == '\0') {\nLAB_001bb98e:\n      uVar13 = shdr->p_->sh_size;\n      uVar13 = uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 | (uVar13 & 0xff00) << 0x28\n               | uVar13 << 0x38;\n      bVar7 = uVar13 < 8;\n      bVar23 = uVar13 == 8;\n      if (8 < uVar13) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".ctors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar7 = *pbVar17 < *pbVar19;\n          bVar23 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar7 = (!bVar7 && !bVar23) == bVar7;\n        if (bVar7) {\nLAB_001bb9d7:\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".init_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) goto LAB_001bba30;\n        }\n        else {\n          lVar14 = 7;\n          pbVar17 = (byte *)".ctors.";\n          pbVar19 = (byte *)name;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar21 && !bVar7) == bVar21;\n          if (bVar7) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar23 = false;\n          lVar14 = 7;\n          pbVar17 = (byte *)name;\n          pbVar19 = (byte *)".dtors";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar21 = false;\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".fini_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;\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        cVar15 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001bb87a;\n      }\n    }" if (parenthesized_expression "(cVar15 == '\0')" ( (binary_expression "cVar15 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001bb98e:\n      uVar13 = shdr->p_->sh_size;\n      uVar13 = uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 | (uVar13 & 0xff00) << 0x28\n               | uVar13 << 0x38;\n      bVar7 = uVar13 < 8;\n      bVar23 = uVar13 == 8;\n      if (8 < uVar13) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".ctors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar7 = *pbVar17 < *pbVar19;\n          bVar23 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar7 = (!bVar7 && !bVar23) == bVar7;\n        if (bVar7) {\nLAB_001bb9d7:\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".init_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) goto LAB_001bba30;\n        }\n        else {\n          lVar14 = 7;\n          pbVar17 = (byte *)".ctors.";\n          pbVar19 = (byte *)name;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar21 && !bVar7) == bVar21;\n          if (bVar7) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar23 = false;\n          lVar14 = 7;\n          pbVar17 = (byte *)name;\n          pbVar19 = (byte *)".dtors";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar21 = false;\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".fini_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;\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        cVar15 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001bb87a;\n      }\n    }" { (labeled_statement "LAB_001bb98e:\n      uVar13 = shdr->p_->sh_size;" statement_identifier : (expression_statement "uVar13 = shdr->p_->sh_size;" (assignment_expression "uVar13 = shdr->p_->sh_size" identifier = (field_expression "shdr->p_->sh_size" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier)) ;)) (expression_statement "uVar13 = uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 | (uVar13 & 0xff00) << 0x28\n               | uVar13 << 0x38;" (assignment_expression "uVar13 = uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 | (uVar13 & 0xff00) << 0x28\n               | uVar13 << 0x38" identifier = (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 | (uVar13 & 0xff00) << 0x28\n               | uVar13 << 0x38" (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 | (uVar13 & 0xff00) << 0x28" (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18" (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |\n               (uVar13 & 0xff000000) << 8" (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8" (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |\n               (uVar13 & 0xff0000000000) >> 0x18" (binary_expression "uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28" (binary_expression "uVar13 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar13 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar13 & 0xff000000000000)" ( (binary_expression "uVar13 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar13 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar13 & 0xff0000000000)" ( (binary_expression "uVar13 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar13 & 0xff00000000) >> 8" (parenthesized_expression "(uVar13 & 0xff00000000)" ( (binary_expression "uVar13 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar13 & 0xff000000) << 8" (parenthesized_expression "(uVar13 & 0xff000000)" ( (binary_expression "uVar13 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar13 & 0xff0000) << 0x18" (parenthesized_expression "(uVar13 & 0xff0000)" ( (binary_expression "uVar13 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar13 & 0xff00) << 0x28" (parenthesized_expression "(uVar13 & 0xff00)" ( (binary_expression "uVar13 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar13 << 0x38" identifier << number_literal))) ;) (expression_statement "bVar7 = uVar13 < 8;" (assignment_expression "bVar7 = uVar13 < 8" identifier = (binary_expression "uVar13 < 8" identifier < number_literal)) ;) (expression_statement "bVar23 = uVar13 == 8;" (assignment_expression "bVar23 = uVar13 == 8" identifier = (binary_expression "uVar13 == 8" identifier == number_literal)) ;) (if_statement "if (8 < uVar13) {\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".ctors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar7 = *pbVar17 < *pbVar19;\n          bVar23 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar7 = (!bVar7 && !bVar23) == bVar7;\n        if (bVar7) {\nLAB_001bb9d7:\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".init_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) goto LAB_001bba30;\n        }\n        else {\n          lVar14 = 7;\n          pbVar17 = (byte *)".ctors.";\n          pbVar19 = (byte *)name;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar21 && !bVar7) == bVar21;\n          if (bVar7) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar23 = false;\n          lVar14 = 7;\n          pbVar17 = (byte *)name;\n          pbVar19 = (byte *)".dtors";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar21 = false;\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".fini_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;\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        cVar15 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001bb87a;\n      }" if (parenthesized_expression "(8 < uVar13)" ( (binary_expression "8 < uVar13" number_literal < identifier) )) (compound_statement "{\n        lVar14 = 7;\n        pbVar17 = (byte *)name;\n        pbVar19 = (byte *)".ctors";\n        do {\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar7 = *pbVar17 < *pbVar19;\n          bVar23 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar7 = (!bVar7 && !bVar23) == bVar7;\n        if (bVar7) {\nLAB_001bb9d7:\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".init_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) goto LAB_001bba30;\n        }\n        else {\n          lVar14 = 7;\n          pbVar17 = (byte *)".ctors.";\n          pbVar19 = (byte *)name;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar21 && !bVar7) == bVar21;\n          if (bVar7) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar23 = false;\n          lVar14 = 7;\n          pbVar17 = (byte *)name;\n          pbVar19 = (byte *)".dtors";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar21 = false;\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".fini_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;\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        cVar15 = (this->script_options_->script_sections_).saw_sections_clause_;\n        goto LAB_001bb87a;\n      }" { (expression_statement "lVar14 = 7;" (assignment_expression "lVar14 = 7" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)name;" (assignment_expression "pbVar17 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar19 = (byte *)".ctors";" (assignment_expression "pbVar19 = (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 (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar7 = *pbVar17 < *pbVar19;\n          bVar23 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        } while (bVar23);" do (compound_statement "{\n          if (lVar14 == 0) break;\n          lVar14 = lVar14 + -1;\n          bVar7 = *pbVar17 < *pbVar19;\n          bVar23 = *pbVar17 == *pbVar19;\n          pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n          pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n        }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar17 < *pbVar19;" (assignment_expression "bVar7 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar23 = *pbVar17 == *pbVar19;" (assignment_expression "bVar23 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar7 = (!bVar7 && !bVar23) == bVar7;" (assignment_expression "bVar7 = (!bVar7 && !bVar23) == bVar7" identifier = (binary_expression "(!bVar7 && !bVar23) == bVar7" (parenthesized_expression "(!bVar7 && !bVar23)" ( (binary_expression "!bVar7 && !bVar23" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar7) {\nLAB_001bb9d7:\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".init_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) goto LAB_001bba30;\n        }\n        else {\n          lVar14 = 7;\n          pbVar17 = (byte *)".ctors.";\n          pbVar19 = (byte *)name;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar21 && !bVar7) == bVar21;\n          if (bVar7) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar23 = false;\n          lVar14 = 7;\n          pbVar17 = (byte *)name;\n          pbVar19 = (byte *)".dtors";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar21 = false;\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".fini_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;\n        }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\nLAB_001bb9d7:\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".init_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) goto LAB_001bba30;\n        }" { (labeled_statement "LAB_001bb9d7:\n          bVar23 = false;" statement_identifier : (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;)) (expression_statement "lVar14 = 0xc;" (assignment_expression "lVar14 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)this_00->name_;" (assignment_expression "pbVar17 = (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 "pbVar19 = (byte *)".init_array";" (assignment_expression "pbVar19 = (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 (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);" do (compound_statement "{\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar17 < *pbVar19;" (assignment_expression "bVar23 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar7 = *pbVar17 == *pbVar19;" (assignment_expression "bVar7 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (expression_statement "bVar7 = (!bVar23 && !bVar7) == bVar23;" (assignment_expression "bVar7 = (!bVar23 && !bVar7) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar7) == bVar23" (parenthesized_expression "(!bVar23 && !bVar7)" ( (binary_expression "!bVar23 && !bVar7" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar7) goto LAB_001bba30;" if (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) )) (goto_statement "goto LAB_001bba30;" goto statement_identifier ;)) }) (else_clause "else {\n          lVar14 = 7;\n          pbVar17 = (byte *)".ctors.";\n          pbVar19 = (byte *)name;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar21 && !bVar7) == bVar21;\n          if (bVar7) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar23 = false;\n          lVar14 = 7;\n          pbVar17 = (byte *)name;\n          pbVar19 = (byte *)".dtors";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar21 = false;\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".fini_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;\n        }" else (compound_statement "{\n          lVar14 = 7;\n          pbVar17 = (byte *)".ctors.";\n          pbVar19 = (byte *)name;\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar7 = (!bVar21 && !bVar7) == bVar21;\n          if (bVar7) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar23 = false;\n          lVar14 = 7;\n          pbVar17 = (byte *)name;\n          pbVar19 = (byte *)".dtors";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          bVar21 = false;\n          bVar7 = (!bVar23 && !bVar7) == bVar23;\n          if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }\n          bVar23 = false;\n          lVar14 = 0xc;\n          pbVar17 = (byte *)this_00->name_;\n          pbVar19 = (byte *)".fini_array";\n          do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);\n          if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;\n        }" { (expression_statement "lVar14 = 7;" (assignment_expression "lVar14 = 7" identifier = number_literal) ;) (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 "))) ;) (expression_statement "pbVar19 = (byte *)name;" (assignment_expression "pbVar19 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);" do (compound_statement "{\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar21 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar17 < *pbVar19;" (assignment_expression "bVar21 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar7 = *pbVar17 == *pbVar19;" (assignment_expression "bVar7 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (expression_statement "bVar7 = (!bVar21 && !bVar7) == bVar21;" (assignment_expression "bVar7 = (!bVar21 && !bVar7) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar7) == bVar21" (parenthesized_expression "(!bVar21 && !bVar7)" ( (binary_expression "!bVar21 && !bVar7" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar7) goto LAB_001bb9d7;" if (parenthesized_expression "(bVar7)" ( identifier )) (goto_statement "goto LAB_001bb9d7;" goto statement_identifier ;)) (labeled_statement "LAB_001bba30:\n          bVar23 = false;" statement_identifier : (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;)) (expression_statement "lVar14 = 7;" (assignment_expression "lVar14 = 7" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)name;" (assignment_expression "pbVar17 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar19 = (byte *)".dtors";" (assignment_expression "pbVar19 = (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 (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);" do (compound_statement "{\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar17 < *pbVar19;" (assignment_expression "bVar23 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar7 = *pbVar17 == *pbVar19;" (assignment_expression "bVar7 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar7 = (!bVar23 && !bVar7) == bVar23;" (assignment_expression "bVar7 = (!bVar23 && !bVar7) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar7) == bVar23" (parenthesized_expression "(!bVar23 && !bVar7)" ( (binary_expression "!bVar23 && !bVar7" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar7) {\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }" if (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) )) (compound_statement "{\n            lVar14 = 7;\n            pbVar17 = (byte *)".dtors.";\n            pbVar19 = (byte *)name;\n            do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);\n            bVar7 = (!bVar21 && !bVar7) == bVar21;\n            if (!bVar7) goto LAB_001bb878;\n          }" { (expression_statement "lVar14 = 7;" (assignment_expression "lVar14 = 7" identifier = number_literal) ;) (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 "))) ;) (expression_statement "pbVar19 = (byte *)name;" (assignment_expression "pbVar19 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            } while (bVar7);" do (compound_statement "{\n              if (lVar14 == 0) break;\n              lVar14 = lVar14 + -1;\n              bVar21 = *pbVar17 < *pbVar19;\n              bVar7 = *pbVar17 == *pbVar19;\n              pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n              pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n            }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar17 < *pbVar19;" (assignment_expression "bVar21 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar7 = *pbVar17 == *pbVar19;" (assignment_expression "bVar7 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (expression_statement "bVar7 = (!bVar21 && !bVar7) == bVar21;" (assignment_expression "bVar7 = (!bVar21 && !bVar7) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar7) == bVar21" (parenthesized_expression "(!bVar21 && !bVar7)" ( (binary_expression "!bVar21 && !bVar7" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar7) goto LAB_001bb878;" if (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) )) (goto_statement "goto LAB_001bb878;" goto statement_identifier ;)) })) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "lVar14 = 0xc;" (assignment_expression "lVar14 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)this_00->name_;" (assignment_expression "pbVar17 = (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 "pbVar19 = (byte *)".fini_array";" (assignment_expression "pbVar19 = (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 (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          } while (bVar7);" do (compound_statement "{\n            if (lVar14 == 0) break;\n            lVar14 = lVar14 + -1;\n            bVar23 = *pbVar17 < *pbVar19;\n            bVar7 = *pbVar17 == *pbVar19;\n            pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;\n            pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;\n          }" { (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar14 = lVar14 + -1;" (assignment_expression "lVar14 = lVar14 + -1" identifier = (binary_expression "lVar14 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar17 < *pbVar19;" (assignment_expression "bVar23 = *pbVar17 < *pbVar19" identifier = (binary_expression "*pbVar17 < *pbVar19" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar7 = *pbVar17 == *pbVar19;" (assignment_expression "bVar7 = *pbVar17 == *pbVar19" identifier = (binary_expression "*pbVar17 == *pbVar19" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar17 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar17 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (ulong)bVar24 * -2 + 1" identifier = (binary_expression "pbVar19 + (ulong)bVar24 * -2 + 1" (binary_expression "pbVar19 + (ulong)bVar24 * -2" identifier + (binary_expression "(ulong)bVar24 * -2" (cast_expression "(ulong)bVar24" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar7) != bVar23) goto LAB_001bb878;" if (parenthesized_expression "((!bVar23 && !bVar7) != bVar23)" ( (binary_expression "(!bVar23 && !bVar7) != bVar23" (parenthesized_expression "(!bVar23 && !bVar7)" ( (binary_expression "!bVar23 && !bVar7" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001bb878;" 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 "cVar15 = (this->script_options_->script_sections_).saw_sections_clause_;" (assignment_expression "cVar15 = (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_001bb87a;" goto statement_identifier ;) })) }))) })) (labeled_statement "LAB_001bb878:\n  cVar15 = false;" statement_identifier : (expression_statement "cVar15 = false;" (assignment_expression "cVar15 = false" identifier = false) ;)) (labeled_statement "LAB_001bb87a:\n  uVar13 = this_00->flags_;" statement_identifier : (expression_statement "uVar13 = this_00->flags_;" (assignment_expression "uVar13 = this_00->flags_" identifier = (field_expression "this_00->flags_" identifier -> field_identifier)) ;)) (expression_statement "oVar12 = Output_section::add_input_section<64,_true>\n                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar15);" (comma_expression "oVar12 = Output_section::add_input_section<64,_true>\n                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar15)" (binary_expression "oVar12 = Output_section::add_input_section<64" (assignment_expression "oVar12 = Output_section" identifier = identifier) (ERROR "::add_input_section" : : identifier) < number_literal) , (binary_expression "_true>\n                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar15)" identifier > (parenthesized_expression "(this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar15)" ( (comma_expression "this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)cVar15" identifier , (comma_expression "this,object,shndx,name,shdr,reloc_shndx,(bool)cVar15" identifier , (comma_expression "object,shndx,name,shdr,reloc_shndx,(bool)cVar15" identifier , (comma_expression "shndx,name,shdr,reloc_shndx,(bool)cVar15" identifier , (comma_expression "name,shdr,reloc_shndx,(bool)cVar15" identifier , (comma_expression "shdr,reloc_shndx,(bool)cVar15" identifier , (comma_expression "reloc_shndx,(bool)cVar15" identifier , (cast_expression "(bool)cVar15" ( (type_descriptor "bool" primitive_type) ) identifier)))))))) )))) ;) (expression_statement "*off = oVar12;" (assignment_expression "*off = oVar12" (pointer_expression "*off" * identifier) = identifier) ;) (if_statement "if (((uVar13 & 2) != 0) && (((uint)uVar13 & 5) != ((uint)this_00->flags_ & 5))) {\n    OVar8 = default_section_order(this,this_00,false);\n    this_00->order_ = OVar8;\n  }" if (parenthesized_expression "(((uVar13 & 2) != 0) && (((uint)uVar13 & 5) != ((uint)this_00->flags_ & 5)))" ( (binary_expression "((uVar13 & 2) != 0) && (((uint)uVar13 & 5) != ((uint)this_00->flags_ & 5))" (parenthesized_expression "((uVar13 & 2) != 0)" ( (binary_expression "(uVar13 & 2) != 0" (parenthesized_expression "(uVar13 & 2)" ( (binary_expression "uVar13 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uint)uVar13 & 5) != ((uint)this_00->flags_ & 5))" ( (binary_expression "((uint)uVar13 & 5) != ((uint)this_00->flags_ & 5)" (parenthesized_expression "((uint)uVar13 & 5)" ( (binary_expression "(uint)uVar13 & 5" (cast_expression "(uint)uVar13" ( (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    OVar8 = default_section_order(this,this_00,false);\n    this_00->order_ = OVar8;\n  }" { (expression_statement "OVar8 = default_section_order(this,this_00,false);" (assignment_expression "OVar8 = 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_ = OVar8;" (assignment_expression "this_00->order_ = OVar8" (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_001bb4f0(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  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  char *__s1;\n  size_t __n;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  bool bVar17;\n  undefined1 uVar18;\n  bool bVar19;\n  byte bVar20;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar20 = 0;\n  *param_9 = 0;\n  cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar10 == 0) goto LAB_001bba79;\n  if (*(char *)(lVar10 + 0x5051) == '\0') {\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }\n  else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }\nLAB_001bb748:\n  lVar12 = *(long *)(param_1 + 8);\n  cVar4 = *(char *)(lVar12 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar4 != '\0') {\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (lVar1 == 0) {\nLAB_001bba79:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar16 = false;\n  bVar19 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar19) goto LAB_001bb970;\n  lVar11 = 7;\n  pbVar13 = (byte *)".ctors.";\n  pbVar14 = param_4;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar17 = false;\n  bVar16 = (!bVar16 && !bVar19) == bVar16;\n  if (bVar16) {\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }\nLAB_001bb878:\n  cVar4 = '\0';\nLAB_001bb87a:\n  uVar9 = *(ulong *)(lVar10 + 0x70);\n  uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);\n  *param_9 = uVar8;\n  if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar10;\n}\n\n" (function_definition "long FUN_001bb4f0(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  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  char *__s1;\n  size_t __n;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  bool bVar17;\n  undefined1 uVar18;\n  bool bVar19;\n  byte bVar20;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar20 = 0;\n  *param_9 = 0;\n  cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar10 == 0) goto LAB_001bba79;\n  if (*(char *)(lVar10 + 0x5051) == '\0') {\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }\n  else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }\nLAB_001bb748:\n  lVar12 = *(long *)(param_1 + 8);\n  cVar4 = *(char *)(lVar12 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar4 != '\0') {\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (lVar1 == 0) {\nLAB_001bba79:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar16 = false;\n  bVar19 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar19) goto LAB_001bb970;\n  lVar11 = 7;\n  pbVar13 = (byte *)".ctors.";\n  pbVar14 = param_4;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar17 = false;\n  bVar16 = (!bVar16 && !bVar19) == bVar16;\n  if (bVar16) {\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }\nLAB_001bb878:\n  cVar4 = '\0';\nLAB_001bb87a:\n  uVar9 = *(ulong *)(lVar10 + 0x70);\n  uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);\n  *param_9 = uVar8;\n  if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar10;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_001bb4f0(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  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  char *__s1;\n  size_t __n;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  bool bVar17;\n  undefined1 uVar18;\n  bool bVar19;\n  byte bVar20;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar20 = 0;\n  *param_9 = 0;\n  cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar10 == 0) goto LAB_001bba79;\n  if (*(char *)(lVar10 + 0x5051) == '\0') {\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }\n  else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }\nLAB_001bb748:\n  lVar12 = *(long *)(param_1 + 8);\n  cVar4 = *(char *)(lVar12 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar4 != '\0') {\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (lVar1 == 0) {\nLAB_001bba79:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar16 = false;\n  bVar19 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar19) goto LAB_001bb970;\n  lVar11 = 7;\n  pbVar13 = (byte *)".ctors.";\n  pbVar14 = param_4;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar17 = false;\n  bVar16 = (!bVar16 && !bVar19) == bVar16;\n  if (bVar16) {\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }\nLAB_001bb878:\n  cVar4 = '\0';\nLAB_001bb87a:\n  uVar9 = *(ulong *)(lVar10 + 0x70);\n  uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);\n  *param_9 = uVar8;\n  if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar10;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "char *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "undefined1 uVar18;" type_identifier identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "byte bVar20;" 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 "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);" (assignment_expression "cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5)" identifier = (call_expression "FUN_001b4420(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 (cVar4 == '\0') {\n    return 0;\n  }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);" (assignment_expression "lVar10 = *(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 (lVar10 == 0) goto LAB_001bba79;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001bba79;" goto statement_identifier ;)) (if_statement "if (*(char *)(lVar10 + 0x5051) == '\0') {\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }\n  else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }" if (parenthesized_expression "(*(char *)(lVar10 + 0x5051) == '\0')" ( (binary_expression "*(char *)(lVar10 + 0x5051) == '\0'" (pointer_expression "*(char *)(lVar10 + 0x5051)" * (cast_expression "(char *)(lVar10 + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x5051)" ( (binary_expression "lVar10 + 0x5051" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }" { (labeled_statement "LAB_001bb56b:\n    uVar15 = 0;" statement_identifier : (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;)) (expression_statement "uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';" (assignment_expression "uVar18 = *(char *)(lVar10 + 0x8f19) == '\0'" identifier = (binary_expression "*(char *)(lVar10 + 0x8f19) == '\0'" (pointer_expression "*(char *)(lVar10 + 0x8f19)" * (cast_expression "(char *)(lVar10 + 0x8f19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x8f19)" ( (binary_expression "lVar10 + 0x8f19" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }" if (parenthesized_expression "(!(bool)uVar18)" ( (unary_expression "!(bool)uVar18" ! (cast_expression "(bool)uVar18" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(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 "lVar10 = 0xe;" (assignment_expression "lVar10 = 0xe" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".text.unlikely";" (assignment_expression "pbVar13 = (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 "pbVar14 = local_58;" (assignment_expression "pbVar14 = local_58" identifier = identifier) ;) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);" do (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar10 == 0) break;" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" identifier = (binary_expression "lVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar13 < *pbVar14;" (assignment_expression "uVar15 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "uVar18 = *pbVar13 == *pbVar14;" (assignment_expression "uVar18 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar18)" ( (cast_expression "(bool)uVar18" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }" if (parenthesized_expression "((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15)" ( (binary_expression "(!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar18)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar18" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar18" ! (cast_expression "(bool)uVar18" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }" { (if_statement "if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n          FUN_002dac70(local_58);\n        }" { (expression_statement "FUN_002dac70(local_58);" (call_expression "FUN_002dac70(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) (expression_statement "uVar8 = *(undefined8 *)(*param_5 + 8);" (assignment_expression "uVar8 = *(undefined8 *)(*param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(*param_5 + 8)" * (cast_expression "(undefined8 *)(*param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;" (assignment_expression "uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" identifier = (binary_expression "(uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (call_expression "(uint)(byte)((ulong)uVar8 >> 0x38)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((ulong)uVar8 >> 0x38)" ( (binary_expression "(ulong)uVar8 >> 0x38" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) | (binary_expression "((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (parenthesized_expression "((uint)((ulong)uVar8 >> 0x20) & 0xff0000)" ( (binary_expression "(uint)((ulong)uVar8 >> 0x20) & 0xff0000" (call_expression "(uint)((ulong)uVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)uVar8 >> 0x20)" ( (binary_expression "(ulong)uVar8 >> 0x20" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) & number_literal) )) >> number_literal))) ;) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;" 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_001bbb53;" goto statement_identifier ;)) (expression_statement "uVar3 = uVar2 & 0xfffff50f;" (assignment_expression "uVar3 = uVar2 & 0xfffff50f" identifier = (binary_expression "uVar2 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 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          uVar3 = uVar2 & 0xfffff58f;\n        }" { (expression_statement "uVar3 = uVar2 & 0xfffff58f;" (assignment_expression "uVar3 = uVar2 & 0xfffff58f" identifier = (binary_expression "uVar2 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);" (assignment_expression "uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58)" identifier = (call_expression "FUN_0026e6a0(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 "lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);" (assignment_expression "lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" identifier = (call_expression "FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" identifier (argument_list "(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" ( identifier , identifier , identifier , identifier , (binary_expression "uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000" (binary_expression "uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000" identifier | (binary_expression "(uint)((ulong)uVar8 >> 0x18) & 0xff0000" (call_expression "(uint)((ulong)uVar8 >> 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)uVar8 >> 0x18)" ( (binary_expression "(ulong)uVar8 >> 0x18" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) | (binary_expression "(uint)((ulong)uVar8 >> 8) & 0xff000000" (call_expression "(uint)((ulong)uVar8 >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)uVar8 >> 8)" ( (binary_expression "(ulong)uVar8 >> 8" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) , number_literal , number_literal )))) ;) (expression_statement "*(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;" (assignment_expression "*(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar10 + 0xca)" * (cast_expression "(byte *)(lVar10 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xca)" ( (binary_expression "lVar10 + 0xca" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar10 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar10 + 0xca)" * (cast_expression "(byte *)(lVar10 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xca)" ( (binary_expression "lVar10 + 0xca" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_001bb748;" goto statement_identifier ;) })) (if_statement "if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }" if (parenthesized_expression "(local_58 != local_48)" ( (binary_expression "local_58 != local_48" identifier != identifier) )) (compound_statement "{\n        FUN_002dac70(local_58);\n      }" { (expression_statement "FUN_002dac70(local_58);" (call_expression "FUN_002dac70(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 "lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);" (assignment_expression "lVar12 = 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 (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }" if (parenthesized_expression "(lVar12 == param_1 + 1000)" ( (binary_expression "lVar12 == param_1 + 1000" identifier == (binary_expression "param_1 + 1000" identifier + number_literal)) )) (compound_statement "{\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "uVar9 = *(ulong *)(*param_5 + 8);" (assignment_expression "uVar9 = *(ulong *)(*param_5 + 8)" identifier = (pointer_expression "*(ulong *)(*param_5 + 8)" * (cast_expression "(ulong *)(*param_5 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (expression_statement "lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);" (assignment_expression "lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1)" identifier = (call_expression "FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1)" identifier (argument_list "(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1)" ( identifier , identifier , identifier , identifier , (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" ( (binary_expression "uVar9 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" ( (binary_expression "uVar9 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" ( (binary_expression "uVar9 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x38" identifier << number_literal)) , number_literal , number_literal , number_literal , number_literal , number_literal )))) ;) (if_statement "if (lVar10 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }" else (compound_statement "{\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }" { (expression_statement "uVar8 = *(undefined8 *)(*param_5 + 8);" (assignment_expression "uVar8 = *(undefined8 *)(*param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(*param_5 + 8)" * (cast_expression "(undefined8 *)(*param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (expression_statement "uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;" (assignment_expression "uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" identifier = (binary_expression "(uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (call_expression "(uint)(byte)((ulong)uVar8 >> 0x38)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((ulong)uVar8 >> 0x38)" ( (binary_expression "(ulong)uVar8 >> 0x38" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) | (binary_expression "((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (parenthesized_expression "((uint)((ulong)uVar8 >> 0x20) & 0xff0000)" ( (binary_expression "(uint)((ulong)uVar8 >> 0x20) & 0xff0000" (call_expression "(uint)((ulong)uVar8 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)uVar8 >> 0x20)" ( (binary_expression "(ulong)uVar8 >> 0x20" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) & number_literal) )) >> number_literal))) ;) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\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_001bbb53:\n                    \n        FUN_001a4340();\n      }" { (labeled_statement "LAB_001bbb53:\n                    \n        FUN_001a4340();" statement_identifier : (expression_statement "FUN_001a4340();" (call_expression "FUN_001a4340()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "uVar3 = uVar2 & 0xfffff50f;" (assignment_expression "uVar3 = uVar2 & 0xfffff50f" identifier = (binary_expression "uVar2 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 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        uVar3 = uVar2 & 0xfffff58f;\n      }" { (expression_statement "uVar3 = uVar2 & 0xfffff58f;" (assignment_expression "uVar3 = uVar2 & 0xfffff58f" identifier = (binary_expression "uVar2 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);" (assignment_expression "uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58)" identifier = (call_expression "FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58)" identifier (argument_list "(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) , (pointer_expression "**(undefined8 **)(lVar12 + 0x30)" * (pointer_expression "*(undefined8 **)(lVar12 + 0x30)" * (cast_expression "(undefined8 **)(lVar12 + 0x30)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar12 + 0x30)" ( (binary_expression "lVar12 + 0x30" identifier + number_literal) ))))) , number_literal , (pointer_expression "&local_58" & identifier) )))) ;) (expression_statement "lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);" (assignment_expression "lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" identifier = (call_expression "FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" identifier (argument_list "(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" ( identifier , identifier , identifier , identifier , (binary_expression "uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000" (binary_expression "uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000" identifier | (binary_expression "(uint)((ulong)uVar8 >> 0x18) & 0xff0000" (call_expression "(uint)((ulong)uVar8 >> 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)uVar8 >> 0x18)" ( (binary_expression "(ulong)uVar8 >> 0x18" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) | (binary_expression "(uint)((ulong)uVar8 >> 8) & 0xff000000" (call_expression "(uint)((ulong)uVar8 >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulong)uVar8 >> 8)" ( (binary_expression "(ulong)uVar8 >> 8" (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) ))) & number_literal)) , number_literal , number_literal )))) ;) (if_statement "if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }" if (parenthesized_expression "(-1 < (char)*(byte *)(lVar10 + 0xca))" ( (binary_expression "-1 < (char)*(byte *)(lVar10 + 0xca)" number_literal < (cast_expression "(char)*(byte *)(lVar10 + 0xca)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(lVar10 + 0xca)" * (cast_expression "(byte *)(lVar10 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xca)" ( (binary_expression "lVar10 + 0xca" identifier + number_literal) )))))) )) (compound_statement "{\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }" { (expression_statement "*(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;" (assignment_expression "*(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar10 + 0xca)" * (cast_expression "(byte *)(lVar10 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xca)" ( (binary_expression "lVar10 + 0xca" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar10 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar10 + 0xca)" * (cast_expression "(byte *)(lVar10 + 0xca)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xca)" ( (binary_expression "lVar10 + 0xca" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "lVar12 = *(long *)(lVar12 + 0x30);" (assignment_expression "lVar12 = *(long *)(lVar12 + 0x30)" identifier = (pointer_expression "*(long *)(lVar12 + 0x30)" * (cast_expression "(long *)(lVar12 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x30)" ( (binary_expression "lVar12 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);" (assignment_expression "*(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8)" (pointer_expression "*(undefined8 *)(lVar10 + 0xd8)" * (cast_expression "(undefined8 *)(lVar10 + 0xd8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xd8)" ( (binary_expression "lVar10 + 0xd8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar12 + 8)" * (cast_expression "(undefined8 *)(lVar12 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 8)" ( (binary_expression "lVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);" (assignment_expression "*(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10)" (pointer_expression "*(undefined8 *)(lVar10 + 0xe0)" * (cast_expression "(undefined8 *)(lVar10 + 0xe0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xe0)" ( (binary_expression "lVar10 + 0xe0" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(lVar12 + 0x10)" * (cast_expression "(undefined8 *)(lVar12 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x10)" ( (binary_expression "lVar12 + 0x10" identifier + number_literal) ))))) ;) })) }))) }) (else_clause "else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }" else (compound_statement "{\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }" { (expression_statement "uVar9 = *(ulong *)(*param_5 + 8);" (assignment_expression "uVar9 = *(ulong *)(*param_5 + 8)" identifier = (pointer_expression "*(ulong *)(*param_5 + 8)" * (cast_expression "(ulong *)(*param_5 + 8)" ( (type_descriptor "ulong *" 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 (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;" if (parenthesized_expression "(((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0)" ( (binary_expression "((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0" (parenthesized_expression "((uVar9 & 0xff000000000000) >> 0x28 & 0x200)" ( (binary_expression "(uVar9 & 0xff000000000000) >> 0x28 & 0x200" (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001bb56b;" goto statement_identifier ;)) (expression_statement "param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);" (assignment_expression "param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0)" identifier = (cast_expression "(byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0026e6a0(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 "lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);" (assignment_expression "lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0)" identifier = (call_expression "FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0)" identifier (argument_list "(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0)" ( identifier , identifier , identifier , (binary_expression "(uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000" (binary_expression "(uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000" (binary_expression "(uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff" (call_expression "(uint)(byte)(uVar9 >> 0x38)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar9 >> 0x38)" ( (binary_expression "uVar9 >> 0x38" identifier >> number_literal) ))) | (binary_expression "(uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff" (call_expression "(uint)((uVar9 & 0xff000000000000) >> 0x28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar9 & 0xff000000000000) >> 0x28)" ( (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal) ))) & number_literal)) | (binary_expression "(uint)(uVar9 >> 0x18) & 0xff0000" (call_expression "(uint)(uVar9 >> 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 >> 0x18)" ( (binary_expression "uVar9 >> 0x18" identifier >> number_literal) ))) & number_literal)) | (binary_expression "(uint)(uVar9 >> 8) & 0xff000000" (call_expression "(uint)(uVar9 >> 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 >> 8)" ( (binary_expression "uVar9 >> 8" identifier >> number_literal) ))) & number_literal)) , number_literal , number_literal )))) ;) }))) (labeled_statement "LAB_001bb748:\n  lVar12 = *(long *)(param_1 + 8);" statement_identifier : (expression_statement "lVar12 = *(long *)(param_1 + 8);" (assignment_expression "lVar12 = *(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 "cVar4 = *(char *)(lVar12 + 0x148);" (assignment_expression "cVar4 = *(char *)(lVar12 + 0x148)" identifier = (pointer_expression "*(char *)(lVar12 + 0x148)" * (cast_expression "(char *)(lVar12 + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x148)" ( (binary_expression "lVar12 + 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 (cVar4 != '\0') {\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }" { (if_statement "if (lVar1 == 0) goto LAB_001bba79;" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001bba79;" goto statement_identifier ;)) (goto_statement "goto LAB_001bb87a;" goto statement_identifier ;) })) (if_statement "if (lVar1 == 0) {\nLAB_001bba79:\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_001bba79:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_001bba79:\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 "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar19 = *(char *)(lVar1 + 0x5051) == '\0';" (assignment_expression "bVar19 = *(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 (!bVar19) goto LAB_001bb970;" if (parenthesized_expression "(!bVar19)" ( (unary_expression "!bVar19" ! identifier) )) (goto_statement "goto LAB_001bb970;" goto statement_identifier ;)) (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".ctors.";" (assignment_expression "pbVar13 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" identifier = identifier) ;) (do_statement "do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  } while (bVar19);" do (compound_statement "{\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar19 = *pbVar13 == *pbVar14;" (assignment_expression "bVar19 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar19) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar19) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar19) == bVar16" (parenthesized_expression "(!bVar16 && !bVar19)" ( (binary_expression "!bVar16 && !bVar19" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) {\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }" { (labeled_statement "LAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;" statement_identifier : (expression_statement "*(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;" (assignment_expression "*(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar10 + 0xc9)" * (cast_expression "(byte *)(lVar10 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xc9)" ( (binary_expression "lVar10 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar10 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar10 + 0xc9)" * (cast_expression "(byte *)(lVar10 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xc9)" ( (binary_expression "lVar10 + 0xc9" identifier + number_literal) )))) | number_literal)) ;)) (expression_statement "cVar4 = *(char *)(lVar12 + 0x148);" (assignment_expression "cVar4 = *(char *)(lVar12 + 0x148)" identifier = (pointer_expression "*(char *)(lVar12 + 0x148)" * (cast_expression "(char *)(lVar12 + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x148)" ( (binary_expression "lVar12 + 0x148" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\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_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }" { (labeled_statement "LAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;" statement_identifier : (if_statement "if (cVar4 != '\0') goto LAB_001bb87a;" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001bb87a;" goto statement_identifier ;))) (goto_statement "goto LAB_001bb97e;" goto statement_identifier ;) })) (if_statement "if (cVar4 != '\0') goto LAB_001bb87a;" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001bb87a;" goto statement_identifier ;)) (labeled_statement "LAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);" statement_identifier : (expression_statement "cVar4 = *(char *)(lVar1 + 0x5051);" (assignment_expression "cVar4 = *(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_001bb986;" 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_001bb986;" goto statement_identifier ;)) (if_statement "if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\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 (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\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 (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }" while (parenthesized_expression "(iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0)" ( (comma_expression "iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0" (assignment_expression "iVar6 = 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 "iVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\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_001bb98e;" 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_001bb98e;" 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 *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;" (assignment_expression "*(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar10 + 0xc9)" * (cast_expression "(byte *)(lVar10 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xc9)" ( (binary_expression "lVar10 + 0xc9" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar10 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar10 + 0xc9)" * (cast_expression "(byte *)(lVar10 + 0xc9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0xc9)" ( (binary_expression "lVar10 + 0xc9" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "cVar4 = *(char *)(lVar12 + 0x148);" (assignment_expression "cVar4 = *(char *)(lVar12 + 0x148)" identifier = (pointer_expression "*(char *)(lVar12 + 0x148)" * (cast_expression "(char *)(lVar12 + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar12 + 0x148)" ( (binary_expression "lVar12 + 0x148" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001bbaab;" goto statement_identifier ;) })) }) (else_clause "else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }" else (compound_statement "{\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }" { (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".dtors.";" (assignment_expression "pbVar13 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar17 && !bVar16) == bVar17;" (assignment_expression "bVar16 = (!bVar17 && !bVar16) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) goto LAB_001bb830;" if (parenthesized_expression "(bVar16)" ( identifier )) (goto_statement "goto LAB_001bb830;" goto statement_identifier ;)) (expression_statement "lVar11 = 0xc;" (assignment_expression "lVar11 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".init_array.";" (assignment_expression "pbVar13 = (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 "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = *pbVar13 < *pbVar14;" (assignment_expression "bVar19 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar19 && !bVar16) == bVar19;" (assignment_expression "bVar16 = (!bVar19 && !bVar16) == bVar19" identifier = (binary_expression "(!bVar19 && !bVar16) == bVar19" (parenthesized_expression "(!bVar19 && !bVar16)" ( (binary_expression "!bVar19 && !bVar16" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) goto LAB_001bb830;" if (parenthesized_expression "(bVar16)" ( identifier )) (goto_statement "goto LAB_001bb830;" goto statement_identifier ;)) (expression_statement "lVar11 = 0xc;" (assignment_expression "lVar11 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".fini_array.";" (assignment_expression "pbVar13 = (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 "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" identifier = identifier) ;) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;" if (parenthesized_expression "((!bVar17 && !bVar16) == bVar17)" ( (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_001bb830;" goto statement_identifier ;)) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar19 = *(char *)(lVar1 + 0x1179) == '\0';" (assignment_expression "bVar19 = *(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 (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }" if (parenthesized_expression "(!bVar19)" ( (unary_expression "!bVar19" ! identifier) )) (compound_statement "{\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }" { (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".ctors";" (assignment_expression "pbVar14 = (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 (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);" do (compound_statement "{\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar19 = *pbVar13 == *pbVar14;" (assignment_expression "bVar19 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar19) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar19) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar19) == bVar16" (parenthesized_expression "(!bVar16 && !bVar19)" ( (binary_expression "!bVar16 && !bVar19" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }" { (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".dtors";" (assignment_expression "pbVar14 = (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 (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);" do (compound_statement "{\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;" if (parenthesized_expression "((!bVar17 && !bVar16) != bVar17)" ( (binary_expression "(!bVar17 && !bVar16) != bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001bb970;" goto statement_identifier ;)) })) (goto_statement "goto LAB_001bb830;" goto statement_identifier ;) })) (labeled_statement "LAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;" statement_identifier : (if_statement "if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;" 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_001bb854;" goto statement_identifier ;))) (labeled_statement "LAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);" statement_identifier : (expression_statement "cVar4 = *(char *)(lVar1 + 0x5051);" (assignment_expression "cVar4 = *(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_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }" statement_identifier : (if_statement "if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }" { (labeled_statement "LAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);" statement_identifier : (expression_statement "uVar9 = *(ulong *)(*param_5 + 0x20);" (assignment_expression "uVar9 = *(ulong *)(*param_5 + 0x20)" identifier = (pointer_expression "*(ulong *)(*param_5 + 0x20)" * (cast_expression "(ulong *)(*param_5 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 0x20)" ( (binary_expression "*param_5 + 0x20" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;)) (expression_statement "uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;" (assignment_expression "uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" identifier = (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" ( (binary_expression "uVar9 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" ( (binary_expression "uVar9 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" ( (binary_expression "uVar9 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x38" identifier << number_literal))) ;) (expression_statement "bVar16 = uVar9 < 8;" (assignment_expression "bVar16 = uVar9 < 8" identifier = (binary_expression "uVar9 < 8" identifier < number_literal)) ;) (expression_statement "bVar19 = uVar9 == 8;" (assignment_expression "bVar19 = uVar9 == 8" identifier = (binary_expression "uVar9 == 8" identifier == number_literal)) ;) (if_statement "if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }" if (parenthesized_expression "(8 < uVar9)" ( (binary_expression "8 < uVar9" number_literal < identifier) )) (compound_statement "{\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }" { (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".ctors";" (assignment_expression "pbVar14 = (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          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);" do (compound_statement "{\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -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 "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar19 = *pbVar13 == *pbVar14;" (assignment_expression "bVar19 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar19) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar19) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar19) == bVar16" (parenthesized_expression "(!bVar16 && !bVar19)" ( (binary_expression "!bVar16 && !bVar19" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\n        }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }" { (labeled_statement "LAB_001bb9d7:\n          bVar19 = false;" statement_identifier : (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;)) (expression_statement "lVar12 = 0xc;" (assignment_expression "lVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar13 = *(byte **)(lVar10 + 0x28);" (assignment_expression "pbVar13 = *(byte **)(lVar10 + 0x28)" identifier = (pointer_expression "*(byte **)(lVar10 + 0x28)" * (cast_expression "(byte **)(lVar10 + 0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x28)" ( (binary_expression "lVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = (byte *)".init_array";" (assignment_expression "pbVar14 = (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            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);" do (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -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 "bVar19 = *pbVar13 < *pbVar14;" (assignment_expression "bVar19 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar16 = (!bVar19 && !bVar16) == bVar19;" (assignment_expression "bVar16 = (!bVar19 && !bVar16) == bVar19" identifier = (binary_expression "(!bVar19 && !bVar16) == bVar19" (parenthesized_expression "(!bVar19 && !bVar16)" ( (binary_expression "!bVar19 && !bVar16" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) goto LAB_001bba30;" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (goto_statement "goto LAB_001bba30;" goto statement_identifier ;)) }) (else_clause "else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\n        }" else (compound_statement "{\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\n        }" { (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".ctors.";" (assignment_expression "pbVar13 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" identifier = identifier) ;) (do_statement "do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);" do (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -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 "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar16 = (!bVar17 && !bVar16) == bVar17;" (assignment_expression "bVar16 = (!bVar17 && !bVar16) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) goto LAB_001bb9d7;" if (parenthesized_expression "(bVar16)" ( identifier )) (goto_statement "goto LAB_001bb9d7;" goto statement_identifier ;)) (labeled_statement "LAB_001bba30:\n          bVar19 = false;" statement_identifier : (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;)) (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".dtors";" (assignment_expression "pbVar14 = (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            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);" do (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -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 "bVar19 = *pbVar13 < *pbVar14;" (assignment_expression "bVar19 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar19 && !bVar16) == bVar19;" (assignment_expression "bVar16 = (!bVar19 && !bVar16) == bVar19" identifier = (binary_expression "(!bVar19 && !bVar16) == bVar19" (parenthesized_expression "(!bVar19 && !bVar16)" ( (binary_expression "!bVar19 && !bVar16" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }" { (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)".dtors.";" (assignment_expression "pbVar13 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" identifier = identifier) ;) (do_statement "do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);" do (compound_statement "{\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -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 "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar16 = (!bVar17 && !bVar16) == bVar17;" (assignment_expression "bVar16 = (!bVar17 && !bVar16) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) goto LAB_001bb878;" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (goto_statement "goto LAB_001bb878;" goto statement_identifier ;)) })) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "lVar12 = 0xc;" (assignment_expression "lVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar13 = *(byte **)(lVar10 + 0x28);" (assignment_expression "pbVar13 = *(byte **)(lVar10 + 0x28)" identifier = (pointer_expression "*(byte **)(lVar10 + 0x28)" * (cast_expression "(byte **)(lVar10 + 0x28)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 0x28)" ( (binary_expression "lVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "pbVar14 = (byte *)".fini_array";" (assignment_expression "pbVar14 = (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            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);" do (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -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 "bVar19 = *pbVar13 < *pbVar14;" (assignment_expression "bVar19 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;" if (parenthesized_expression "((!bVar19 && !bVar16) != bVar19)" ( (binary_expression "(!bVar19 && !bVar16) != bVar19" (parenthesized_expression "(!bVar19 && !bVar16)" ( (binary_expression "!bVar19 && !bVar16" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001bb878;" 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 "cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);" (assignment_expression "cVar4 = *(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_001bb87a;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_001bb878:\n  cVar4 = '\0';" statement_identifier : (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) (labeled_statement "LAB_001bb87a:\n  uVar9 = *(ulong *)(lVar10 + 0x70);" statement_identifier : (expression_statement "uVar9 = *(ulong *)(lVar10 + 0x70);" (assignment_expression "uVar9 = *(ulong *)(lVar10 + 0x70)" identifier = (pointer_expression "*(ulong *)(lVar10 + 0x70)" * (cast_expression "(ulong *)(lVar10 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x70)" ( (binary_expression "lVar10 + 0x70" identifier + number_literal) ))))) ;)) (expression_statement "uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);" (assignment_expression "uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4)" identifier = (call_expression "FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4)" identifier (argument_list "(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "*param_9 = uVar8;" (assignment_expression "*param_9 = uVar8" (pointer_expression "*param_9" * identifier) = identifier) ;) (if_statement "if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }" if (parenthesized_expression "(((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5)))" ( (binary_expression "((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))" (parenthesized_expression "((uVar9 & 2) != 0)" ( (binary_expression "(uVar9 & 2) != 0" (parenthesized_expression "(uVar9 & 2)" ( (binary_expression "uVar9 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))" ( (binary_expression "((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5)" (parenthesized_expression "((uint)uVar9 & 5)" ( (binary_expression "(uint)uVar9 & 5" (cast_expression "(uint)uVar9" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != (parenthesized_expression "((uint)*(undefined8 *)(lVar10 + 0x70) & 5)" ( (binary_expression "(uint)*(undefined8 *)(lVar10 + 0x70) & 5" (binary_expression "(uint)*(undefined8 *)(lVar10 + 0x70)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined8 *)(lVar10 + 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x70)" ( (binary_expression "lVar10 + 0x70" identifier + number_literal) )))) & number_literal) ))) ))) )) (compound_statement "{\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }" { (expression_statement "uVar5 = FUN_001a5050(param_1,lVar10,0);" (assignment_expression "uVar5 = FUN_001a5050(param_1,lVar10,0)" identifier = (call_expression "FUN_001a5050(param_1,lVar10,0)" identifier (argument_list "(param_1,lVar10,0)" ( identifier , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(lVar10 + 0x78) = uVar5;" (assignment_expression "*(undefined4 *)(lVar10 + 0x78) = uVar5" (pointer_expression "*(undefined4 *)(lVar10 + 0x78)" * (cast_expression "(undefined4 *)(lVar10 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x78)" ( (binary_expression "lVar10 + 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 lVar10;" 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 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 (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 (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 : (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 ))) ;) })) (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 (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) | (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & LIT) )) >> LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (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) , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (binary_expression (binary_expression IDENT | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & LIT)) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & LIT)) , 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_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) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) | (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & LIT) )) >> 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 , (binary_expression (binary_expression IDENT | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & LIT)) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) & LIT)) , 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (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 (binary_expression (binary_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT >> LIT) ))) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT) ))) & LIT)) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & LIT)) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & 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 (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_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_001bb4f0(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  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  char *__s1;\n  size_t __n;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  bool bVar17;\n  undefined1 uVar18;\n  bool bVar19;\n  byte bVar20;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar20 = 0;\n  *param_9 = 0;\n  cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar10 == 0) goto LAB_001bba79;\n  if (*(char *)(lVar10 + 0x5051) == '\0') {\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }\n  else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }\nLAB_001bb748:\n  lVar12 = *(long *)(param_1 + 8);\n  cVar4 = *(char *)(lVar12 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar4 != '\0') {\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (lVar1 == 0) {\nLAB_001bba79:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar16 = false;\n  bVar19 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar19) goto LAB_001bb970;\n  lVar11 = 7;\n  pbVar13 = (byte *)".ctors.";\n  pbVar14 = param_4;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar17 = false;\n  bVar16 = (!bVar16 && !bVar19) == bVar16;\n  if (bVar16) {\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }\nLAB_001bb878:\n  cVar4 = '\0';\nLAB_001bb87a:\n  uVar9 = *(ulong *)(lVar10 + 0x70);\n  uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);\n  *param_9 = uVar8;\n  if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar10;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_001bb4f0(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_001bb4f0") (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  uint uVar2;\n  uint uVar3;\n  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 uVar7;\n  undefined8 uVar8;\n  ulong uVar9;\n  long lVar10;\n  long lVar11;\n  long lVar12;\n  char *__s1;\n  size_t __n;\n  byte *pbVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  bool bVar17;\n  undefined1 uVar18;\n  bool bVar19;\n  byte bVar20;\n  undefined **local_80;\n  undefined *local_60;\n  byte *local_58;\n  undefined4 local_50;\n  byte local_48 [24];\n  \n  bVar20 = 0;\n  *param_9 = 0;\n  cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (lVar10 == 0) goto LAB_001bba79;\n  if (*(char *)(lVar10 + 0x5051) == '\0') {\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }\n  else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }\nLAB_001bb748:\n  lVar12 = *(long *)(param_1 + 8);\n  cVar4 = *(char *)(lVar12 + 0x148);\n  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n  if (cVar4 != '\0') {\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }\n  if (lVar1 == 0) {\nLAB_001bba79:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }\n  bVar16 = false;\n  bVar19 = *(char *)(lVar1 + 0x5051) == '\0';\n  if (!bVar19) goto LAB_001bb970;\n  lVar11 = 7;\n  pbVar13 = (byte *)".ctors.";\n  pbVar14 = param_4;\n  do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  } while (bVar19);\n  bVar17 = false;\n  bVar16 = (!bVar16 && !bVar19) == bVar16;\n  if (bVar16) {\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }\nLAB_001bb878:\n  cVar4 = '\0';\nLAB_001bb87a:\n  uVar9 = *(ulong *)(lVar10 + 0x70);\n  uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);\n  *param_9 = uVar8;\n  if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }\n  *(undefined1 *)(param_1 + 0x368) = 1;\n  return lVar10;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "long lVar12;" (sized_type_specifier "long" (long "long")) (identifier "lVar12") (; ";")) (declaration "char *__s1;" (primitive_type "char") (pointer_declarator "*__s1" (* "*") (identifier "__s1")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "undefined1 uVar15;" (type_identifier "undefined1") (identifier "uVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "undefined1 uVar18;" (type_identifier "undefined1") (identifier "uVar18") (; ";")) (declaration "bool bVar19;" (primitive_type "bool") (identifier "bVar19") (; ";")) (declaration "byte bVar20;" (type_identifier "byte") (identifier "bVar20") (; ";")) (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 "bVar20 = 0;" (assignment_expression "bVar20 = 0" (identifier "bVar20") (= "=") (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 "cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);" (assignment_expression "cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5)" (identifier "cVar4") (= "=") (call_expression "FUN_001b4420(param_1,param_2,param_4,param_5)" (identifier "FUN_001b4420") (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 (cVar4 == '\0') {\n    return 0;\n  }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);" (assignment_expression "lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10)" (identifier "lVar10") (= "=") (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 (lVar10 == 0) goto LAB_001bba79;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001bba79;" (goto "goto") (statement_identifier "LAB_001bba79") (; ";"))) (if_statement "if (*(char *)(lVar10 + 0x5051) == '\0') {\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }\n  else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }" (if "if") (parenthesized_expression "(*(char *)(lVar10 + 0x5051) == '\0')" (( "(") (binary_expression "*(char *)(lVar10 + 0x5051) == '\0'" (pointer_expression "*(char *)(lVar10 + 0x5051)" (* "*") (cast_expression "(char *)(lVar10 + 0x5051)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x5051)" (( "(") (binary_expression "lVar10 + 0x5051" (identifier "lVar10") (+ "+") (number_literal "0x5051")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_001bb56b:\n    uVar15 = 0;\n    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';\n    if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }\n    local_58 = param_2;\n    local_50 = param_3;\n    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);\n    if (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_001bb56b:\n    uVar15 = 0;" (statement_identifier "LAB_001bb56b") (: ":") (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';" (assignment_expression "uVar18 = *(char *)(lVar10 + 0x8f19) == '\0'" (identifier "uVar18") (= "=") (binary_expression "*(char *)(lVar10 + 0x8f19) == '\0'" (pointer_expression "*(char *)(lVar10 + 0x8f19)" (* "*") (cast_expression "(char *)(lVar10 + 0x8f19)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x8f19)" (( "(") (binary_expression "lVar10 + 0x8f19" (identifier "lVar10") (+ "+") (number_literal "0x8f19")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!(bool)uVar18) {\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(local_58);\n      }\n    }" (if "if") (parenthesized_expression "(!(bool)uVar18)" (( "(") (unary_expression "!(bool)uVar18" (! "!") (cast_expression "(bool)uVar18" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar18"))) () ")")) (compound_statement "{\n      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);\n      lVar10 = 0xe;\n      pbVar13 = (byte *)".text.unlikely";\n      pbVar14 = local_58;\n      do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);\n      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }\n      if (local_58 != local_48) {\n        FUN_002dac70(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 "lVar10 = 0xe;" (assignment_expression "lVar10 = 0xe" (identifier "lVar10") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "pbVar13 = (byte *)".text.unlikely";" (assignment_expression "pbVar13 = (byte *)".text.unlikely"" (identifier "pbVar13") (= "=") (cast_expression "(byte *)".text.unlikely"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".text.unlikely"" (" """) (string_content ".text.unlikely") (" """)))) (; ";")) (expression_statement "pbVar14 = local_58;" (assignment_expression "pbVar14 = local_58" (identifier "pbVar14") (= "=") (identifier "local_58")) (; ";")) (do_statement "do {\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while ((bool)uVar18);" (do "do") (compound_statement "{\n        if (lVar10 == 0) break;\n        lVar10 = lVar10 + -1;\n        uVar15 = *pbVar13 < *pbVar14;\n        uVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar10 == 0) break;" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar10 = lVar10 + -1;" (assignment_expression "lVar10 = lVar10 + -1" (identifier "lVar10") (= "=") (binary_expression "lVar10 + -1" (identifier "lVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar15 = *pbVar13 < *pbVar14;" (assignment_expression "uVar15 = *pbVar13 < *pbVar14" (identifier "uVar15") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "uVar18 = *pbVar13 == *pbVar14;" (assignment_expression "uVar18 = *pbVar13 == *pbVar14" (identifier "uVar18") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar18)" (( "(") (cast_expression "(bool)uVar18" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar18")) () ")")) (; ";")) (if_statement "if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }" (if "if") (parenthesized_expression "((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15)" (( "(") (binary_expression "(!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar18)" (( "(") (binary_expression "!(bool)uVar15 && !(bool)uVar18" (unary_expression "!(bool)uVar15" (! "!") (cast_expression "(bool)uVar15" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar15"))) (&& "&&") (unary_expression "!(bool)uVar18" (! "!") (cast_expression "(bool)uVar18" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar18")))) () ")")) (== "==") (cast_expression "(bool)uVar15" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar15"))) () ")")) (compound_statement "{\n        if (local_58 != local_48) {\n          FUN_002dac70(local_58);\n        }\n        uVar8 = *(undefined8 *)(*param_5 + 8);\n        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;\n        uVar3 = uVar2 & 0xfffff50f;\n        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 0xfffff58f;\n        }\n        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);\n        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        goto LAB_001bb748;\n      }" ({ "{") (if_statement "if (local_58 != local_48) {\n          FUN_002dac70(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_002dac70(local_58);\n        }" ({ "{") (expression_statement "FUN_002dac70(local_58);" (call_expression "FUN_002dac70(local_58)" (identifier "FUN_002dac70") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar8 = *(undefined8 *)(*param_5 + 8);" (assignment_expression "uVar8 = *(undefined8 *)(*param_5 + 8)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined8 *)(*param_5 + 8)" (* "*") (cast_expression "(undefined8 *)(*param_5 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 8)" (( "(") (binary_expression "*param_5 + 8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;" (assignment_expression "uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (identifier "uVar2") (= "=") (binary_expression "(uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (call_expression "(uint)(byte)((ulong)uVar8 >> 0x38)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "((ulong)uVar8 >> 0x38)" (( "(") (binary_expression "(ulong)uVar8 >> 0x38" (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "0x38")) () ")"))) (| "|") (binary_expression "((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (parenthesized_expression "((uint)((ulong)uVar8 >> 0x20) & 0xff0000)" (( "(") (binary_expression "(uint)((ulong)uVar8 >> 0x20) & 0xff0000" (call_expression "(uint)((ulong)uVar8 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)uVar8 >> 0x20)" (( "(") (binary_expression "(ulong)uVar8 >> 0x20" (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8")))) (; ";")) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;" (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_001bbb53;" (goto "goto") (statement_identifier "LAB_001bbb53") (; ";"))) (expression_statement "uVar3 = uVar2 & 0xfffff50f;" (assignment_expression "uVar3 = uVar2 & 0xfffff50f" (identifier "uVar3") (= "=") (binary_expression "uVar2 & 0xfffff50f" (identifier "uVar2") (& "&") (number_literal "0xfffff50f"))) (; ";")) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n          uVar3 = uVar2 & 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          uVar3 = uVar2 & 0xfffff58f;\n        }" ({ "{") (expression_statement "uVar3 = uVar2 & 0xfffff58f;" (assignment_expression "uVar3 = uVar2 & 0xfffff58f" (identifier "uVar3") (= "=") (binary_expression "uVar2 & 0xfffff58f" (identifier "uVar2") (& "&") (number_literal "0xfffff58f"))) (; ";")) (} "}"))) (expression_statement "uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);" (assignment_expression "uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58)" (identifier "uVar7") (= "=") (call_expression "FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58)" (identifier "FUN_0026e6a0") (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 "lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);" (assignment_expression "lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" (identifier "lVar10") (= "=") (call_expression "FUN_001acd20(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" (identifier "FUN_001acd20") (argument_list "(param_1,uVar7,local_58,param_6,\n                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar7") (, ",") (identifier "local_58") (, ",") (identifier "param_6") (, ",") (binary_expression "uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                              (uint)((ulong)uVar8 >> 8) & 0xff000000" (binary_expression "uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000" (identifier "uVar3") (| "|") (binary_expression "(uint)((ulong)uVar8 >> 0x18) & 0xff0000" (call_expression "(uint)((ulong)uVar8 >> 0x18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)uVar8 >> 0x18)" (( "(") (binary_expression "(ulong)uVar8 >> 0x18" (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "0x18")) () ")"))) (& "&") (number_literal "0xff0000"))) (| "|") (binary_expression "(uint)((ulong)uVar8 >> 8) & 0xff000000" (call_expression "(uint)((ulong)uVar8 >> 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)uVar8 >> 8)" (( "(") (binary_expression "(ulong)uVar8 >> 8" (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "8")) () ")"))) (& "&") (number_literal "0xff000000"))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;" (assignment_expression "*(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar10 + 0xca)" (* "*") (cast_expression "(byte *)(lVar10 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0xca)" (( "(") (binary_expression "lVar10 + 0xca" (identifier "lVar10") (+ "+") (number_literal "0xca")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar10 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar10 + 0xca)" (* "*") (cast_expression "(byte *)(lVar10 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0xca)" (( "(") (binary_expression "lVar10 + 0xca" (identifier "lVar10") (+ "+") (number_literal "0xca")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (goto_statement "goto LAB_001bb748;" (goto "goto") (statement_identifier "LAB_001bb748") (; ";")) (} "}"))) (if_statement "if (local_58 != local_48) {\n        FUN_002dac70(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_002dac70(local_58);\n      }" ({ "{") (expression_statement "FUN_002dac70(local_58);" (call_expression "FUN_002dac70(local_58)" (identifier "FUN_002dac70") (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 "lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);" (assignment_expression "lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58)" (identifier "lVar12") (= "=") (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 (lVar12 == param_1 + 1000) {\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }\n    else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }" (if "if") (parenthesized_expression "(lVar12 == param_1 + 1000)" (( "(") (binary_expression "lVar12 == param_1 + 1000" (identifier "lVar12") (== "==") (binary_expression "param_1 + 1000" (identifier "param_1") (+ "+") (number_literal "1000"))) () ")")) (compound_statement "{\n      uVar9 = *(ulong *)(*param_5 + 8);\n      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);\n      if (lVar10 == 0) {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "uVar9 = *(ulong *)(*param_5 + 8);" (assignment_expression "uVar9 = *(ulong *)(*param_5 + 8)" (identifier "uVar9") (= "=") (pointer_expression "*(ulong *)(*param_5 + 8)" (* "*") (cast_expression "(ulong *)(*param_5 + 8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 8)" (( "(") (binary_expression "*param_5 + 8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);" (assignment_expression "lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1)" (identifier "lVar10") (= "=") (call_expression "FUN_001acf30(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1)" (identifier "FUN_001acf30") (argument_list "(param_1,param_2,param_4,param_6,\n                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") (, ",") (identifier "param_6") (, ",") (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                            (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                            (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                            (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" (identifier "uVar9") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" (( "(") (binary_expression "uVar9 & 0xff000000000000" (identifier "uVar9") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" (( "(") (binary_expression "uVar9 & 0xff0000000000" (identifier "uVar9") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" (( "(") (binary_expression "uVar9 & 0xff00000000" (identifier "uVar9") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" (( "(") (binary_expression "uVar9 & 0xff000000" (identifier "uVar9") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar9 << 0x38" (identifier "uVar9") (<< "<<") (number_literal "0x38"))) (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (lVar10 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }" (else "else") (compound_statement "{\n      uVar8 = *(undefined8 *)(*param_5 + 8);\n      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;\n      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\n                    \n        FUN_001a4340();\n      }\n      uVar3 = uVar2 & 0xfffff50f;\n      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 0xfffff58f;\n      }\n      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);\n      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);\n      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }\n    }" ({ "{") (expression_statement "uVar8 = *(undefined8 *)(*param_5 + 8);" (assignment_expression "uVar8 = *(undefined8 *)(*param_5 + 8)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined8 *)(*param_5 + 8)" (* "*") (cast_expression "(undefined8 *)(*param_5 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 8)" (( "(") (binary_expression "*param_5 + 8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;" (assignment_expression "uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (identifier "uVar2") (= "=") (binary_expression "(uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (call_expression "(uint)(byte)((ulong)uVar8 >> 0x38)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "((ulong)uVar8 >> 0x38)" (( "(") (binary_expression "(ulong)uVar8 >> 0x38" (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "0x38")) () ")"))) (| "|") (binary_expression "((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8" (parenthesized_expression "((uint)((ulong)uVar8 >> 0x20) & 0xff0000)" (( "(") (binary_expression "(uint)((ulong)uVar8 >> 0x20) & 0xff0000" (call_expression "(uint)((ulong)uVar8 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)uVar8 >> 0x20)" (( "(") (binary_expression "(ulong)uVar8 >> 0x20" (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "0x20")) () ")"))) (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8")))) (; ";")) (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_001bbb53:\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_001bbb53:\n                    \n        FUN_001a4340();\n      }" ({ "{") (labeled_statement "LAB_001bbb53:\n                    \n        FUN_001a4340();" (statement_identifier "LAB_001bbb53") (: ":") (expression_statement "FUN_001a4340();" (call_expression "FUN_001a4340()" (identifier "FUN_001a4340") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar3 = uVar2 & 0xfffff50f;" (assignment_expression "uVar3 = uVar2 & 0xfffff50f" (identifier "uVar3") (= "=") (binary_expression "uVar2 & 0xfffff50f" (identifier "uVar2") (& "&") (number_literal "0xfffff50f"))) (; ";")) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {\n        uVar3 = uVar2 & 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        uVar3 = uVar2 & 0xfffff58f;\n      }" ({ "{") (expression_statement "uVar3 = uVar2 & 0xfffff58f;" (assignment_expression "uVar3 = uVar2 & 0xfffff58f" (identifier "uVar3") (= "=") (binary_expression "uVar2 & 0xfffff58f" (identifier "uVar2") (& "&") (number_literal "0xfffff58f"))) (; ";")) (} "}"))) (expression_statement "uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);" (assignment_expression "uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58)" (identifier "uVar7") (= "=") (call_expression "FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58)" (identifier "FUN_0026e6a0") (argument_list "(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) (, ",") (pointer_expression "**(undefined8 **)(lVar12 + 0x30)" (* "*") (pointer_expression "*(undefined8 **)(lVar12 + 0x30)" (* "*") (cast_expression "(undefined8 **)(lVar12 + 0x30)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar12 + 0x30)" (( "(") (binary_expression "lVar12 + 0x30" (identifier "lVar12") (+ "+") (number_literal "0x30")) () ")"))))) (, ",") (number_literal "1") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) () ")")))) (; ";")) (expression_statement "lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);" (assignment_expression "lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" (identifier "lVar10") (= "=") (call_expression "FUN_001acd20(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" (identifier "FUN_001acd20") (argument_list "(param_1,uVar7,local_58,param_6,\n                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar7") (, ",") (identifier "local_58") (, ",") (identifier "param_6") (, ",") (binary_expression "uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |\n                            (uint)((ulong)uVar8 >> 8) & 0xff000000" (binary_expression "uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000" (identifier "uVar3") (| "|") (binary_expression "(uint)((ulong)uVar8 >> 0x18) & 0xff0000" (call_expression "(uint)((ulong)uVar8 >> 0x18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)uVar8 >> 0x18)" (( "(") (binary_expression "(ulong)uVar8 >> 0x18" (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "0x18")) () ")"))) (& "&") (number_literal "0xff0000"))) (| "|") (binary_expression "(uint)((ulong)uVar8 >> 8) & 0xff000000" (call_expression "(uint)((ulong)uVar8 >> 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulong)uVar8 >> 8)" (( "(") (binary_expression "(ulong)uVar8 >> 8" (cast_expression "(ulong)uVar8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "8")) () ")"))) (& "&") (number_literal "0xff000000"))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (-1 < (char)*(byte *)(lVar10 + 0xca)) {\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }" (if "if") (parenthesized_expression "(-1 < (char)*(byte *)(lVar10 + 0xca))" (( "(") (binary_expression "-1 < (char)*(byte *)(lVar10 + 0xca)" (number_literal "-1") (< "<") (cast_expression "(char)*(byte *)(lVar10 + 0xca)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(lVar10 + 0xca)" (* "*") (cast_expression "(byte *)(lVar10 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0xca)" (( "(") (binary_expression "lVar10 + 0xca" (identifier "lVar10") (+ "+") (number_literal "0xca")) () ")")))))) () ")")) (compound_statement "{\n        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;\n        lVar12 = *(long *)(lVar12 + 0x30);\n        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);\n        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);\n      }" ({ "{") (expression_statement "*(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;" (assignment_expression "*(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar10 + 0xca)" (* "*") (cast_expression "(byte *)(lVar10 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0xca)" (( "(") (binary_expression "lVar10 + 0xca" (identifier "lVar10") (+ "+") (number_literal "0xca")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar10 + 0xca) | 0x80" (pointer_expression "*(byte *)(lVar10 + 0xca)" (* "*") (cast_expression "(byte *)(lVar10 + 0xca)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0xca)" (( "(") (binary_expression "lVar10 + 0xca" (identifier "lVar10") (+ "+") (number_literal "0xca")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (expression_statement "lVar12 = *(long *)(lVar12 + 0x30);" (assignment_expression "lVar12 = *(long *)(lVar12 + 0x30)" (identifier "lVar12") (= "=") (pointer_expression "*(long *)(lVar12 + 0x30)" (* "*") (cast_expression "(long *)(lVar12 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x30)" (( "(") (binary_expression "lVar12 + 0x30" (identifier "lVar12") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);" (assignment_expression "*(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8)" (pointer_expression "*(undefined8 *)(lVar10 + 0xd8)" (* "*") (cast_expression "(undefined8 *)(lVar10 + 0xd8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0xd8)" (( "(") (binary_expression "lVar10 + 0xd8" (identifier "lVar10") (+ "+") (number_literal "0xd8")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(lVar12 + 8)" (* "*") (cast_expression "(undefined8 *)(lVar12 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 8)" (( "(") (binary_expression "lVar12 + 8" (identifier "lVar12") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);" (assignment_expression "*(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10)" (pointer_expression "*(undefined8 *)(lVar10 + 0xe0)" (* "*") (cast_expression "(undefined8 *)(lVar10 + 0xe0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0xe0)" (( "(") (binary_expression "lVar10 + 0xe0" (identifier "lVar10") (+ "+") (number_literal "0xe0")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(lVar12 + 0x10)" (* "*") (cast_expression "(undefined8 *)(lVar12 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x10)" (( "(") (binary_expression "lVar12 + 0x10" (identifier "lVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }" (else "else") (compound_statement "{\n    uVar9 = *(ulong *)(*param_5 + 8);\n    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;\n    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);\n    lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);\n  }" ({ "{") (expression_statement "uVar9 = *(ulong *)(*param_5 + 8);" (assignment_expression "uVar9 = *(ulong *)(*param_5 + 8)" (identifier "uVar9") (= "=") (pointer_expression "*(ulong *)(*param_5 + 8)" (* "*") (cast_expression "(ulong *)(*param_5 + 8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (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 (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;" (if "if") (parenthesized_expression "(((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0)" (( "(") (binary_expression "((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0" (parenthesized_expression "((uVar9 & 0xff000000000000) >> 0x28 & 0x200)" (( "(") (binary_expression "(uVar9 & 0xff000000000000) >> 0x28 & 0x200" (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" (( "(") (binary_expression "uVar9 & 0xff000000000000" (identifier "uVar9") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28")) (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001bb56b;" (goto "goto") (statement_identifier "LAB_001bb56b") (; ";"))) (expression_statement "param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);" (assignment_expression "param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0)" (identifier "param_4") (= "=") (cast_expression "(byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0026e6a0(param_1 + 0x10,param_4,1,0)" (identifier "FUN_0026e6a0") (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 "lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);" (assignment_expression "lVar10 = FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0)" (identifier "lVar10") (= "=") (call_expression "FUN_001a8f30(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0)" (identifier "FUN_001a8f30") (argument_list "(param_1,param_4,param_6,\n                          (uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_4") (, ",") (identifier "param_6") (, ",") (binary_expression "(uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000" (binary_expression "(uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |\n                          (uint)(uVar9 >> 0x18) & 0xff0000" (binary_expression "(uint)(byte)(uVar9 >> 0x38) |\n                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff" (call_expression "(uint)(byte)(uVar9 >> 0x38)" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(uVar9 >> 0x38)" (( "(") (binary_expression "uVar9 >> 0x38" (identifier "uVar9") (>> ">>") (number_literal "0x38")) () ")"))) (| "|") (binary_expression "(uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff" (call_expression "(uint)((uVar9 & 0xff000000000000) >> 0x28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar9 & 0xff000000000000) >> 0x28)" (( "(") (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" (( "(") (binary_expression "uVar9 & 0xff000000000000" (identifier "uVar9") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28")) () ")"))) (& "&") (number_literal "0xfffff7ff"))) (| "|") (binary_expression "(uint)(uVar9 >> 0x18) & 0xff0000" (call_expression "(uint)(uVar9 >> 0x18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 >> 0x18)" (( "(") (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) () ")"))) (& "&") (number_literal "0xff0000"))) (| "|") (binary_expression "(uint)(uVar9 >> 8) & 0xff000000" (call_expression "(uint)(uVar9 >> 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 >> 8)" (( "(") (binary_expression "uVar9 >> 8" (identifier "uVar9") (>> ">>") (number_literal "8")) () ")"))) (& "&") (number_literal "0xff000000"))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_001bb748:\n  lVar12 = *(long *)(param_1 + 8);" (statement_identifier "LAB_001bb748") (: ":") (expression_statement "lVar12 = *(long *)(param_1 + 8);" (assignment_expression "lVar12 = *(long *)(param_1 + 8)" (identifier "lVar12") (= "=") (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 "cVar4 = *(char *)(lVar12 + 0x148);" (assignment_expression "cVar4 = *(char *)(lVar12 + 0x148)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)(lVar12 + 0x148)" (* "*") (cast_expression "(char *)(lVar12 + 0x148)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x148)" (( "(") (binary_expression "lVar12 + 0x148" (identifier "lVar12") (+ "+") (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 (cVar4 != '\0') {\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if (lVar1 == 0) goto LAB_001bba79;\n    goto LAB_001bb87a;\n  }" ({ "{") (if_statement "if (lVar1 == 0) goto LAB_001bba79;" (if "if") (parenthesized_expression "(lVar1 == 0)" (( "(") (binary_expression "lVar1 == 0" (identifier "lVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001bba79;" (goto "goto") (statement_identifier "LAB_001bba79") (; ";"))) (goto_statement "goto LAB_001bb87a;" (goto "goto") (statement_identifier "LAB_001bb87a") (; ";")) (} "}"))) (if_statement "if (lVar1 == 0) {\nLAB_001bba79:\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_001bba79:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n  }" ({ "{") (labeled_statement "LAB_001bba79:\n                    \n    FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (statement_identifier "LAB_001bba79") (: ":") (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 "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar19 = *(char *)(lVar1 + 0x5051) == '\0';" (assignment_expression "bVar19 = *(char *)(lVar1 + 0x5051) == '\0'" (identifier "bVar19") (= "=") (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 (!bVar19) goto LAB_001bb970;" (if "if") (parenthesized_expression "(!bVar19)" (( "(") (unary_expression "!bVar19" (! "!") (identifier "bVar19")) () ")")) (goto_statement "goto LAB_001bb970;" (goto "goto") (statement_identifier "LAB_001bb970") (; ";"))) (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" (identifier "lVar11") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar13 = (byte *)".ctors.";" (assignment_expression "pbVar13 = (byte *)".ctors."" (identifier "pbVar13") (= "=") (cast_expression "(byte *)".ctors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors."" (" """) (string_content ".ctors.") (" """)))) (; ";")) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" (identifier "pbVar14") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  } while (bVar19);" (do "do") (compound_statement "{\n    if (lVar11 == 0) break;\n    lVar11 = lVar11 + -1;\n    bVar16 = *pbVar13 < *pbVar14;\n    bVar19 = *pbVar13 == *pbVar14;\n    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n  }" ({ "{") (if_statement "if (lVar11 == 0) break;" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" (identifier "lVar11") (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar19 = *pbVar13 == *pbVar14;" (assignment_expression "bVar19 = *pbVar13 == *pbVar14" (identifier "bVar19") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar19)" (( "(") (identifier "bVar19") () ")")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = (!bVar16 && !bVar19) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar19) == bVar16" (identifier "bVar16") (= "=") (binary_expression "(!bVar16 && !bVar19) == bVar16" (parenthesized_expression "(!bVar16 && !bVar19)" (( "(") (binary_expression "!bVar16 && !bVar19" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar19" (! "!") (identifier "bVar19"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (bVar16) {\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }\n  else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (compound_statement "{\nLAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n    cVar4 = *(char *)(lVar12 + 0x148);\n    if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }\n    if (cVar4 != '\0') goto LAB_001bb87a;\nLAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);\n    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;\n    if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }\n  }" ({ "{") (labeled_statement "LAB_001bb830:\n    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;" (statement_identifier "LAB_001bb830") (: ":") (expression_statement "*(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;" (assignment_expression "*(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar10 + 0xc9)" (* "*") (cast_expression "(byte *)(lVar10 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0xc9)" (( "(") (binary_expression "lVar10 + 0xc9" (identifier "lVar10") (+ "+") (number_literal "0xc9")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar10 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar10 + 0xc9)" (* "*") (cast_expression "(byte *)(lVar10 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0xc9)" (( "(") (binary_expression "lVar10 + 0xc9" (identifier "lVar10") (+ "+") (number_literal "0xc9")) () ")")))) (| "|") (number_literal "8"))) (; ";"))) (expression_statement "cVar4 = *(char *)(lVar12 + 0x148);" (assignment_expression "cVar4 = *(char *)(lVar12 + 0x148)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)(lVar12 + 0x148)" (* "*") (cast_expression "(char *)(lVar12 + 0x148)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x148)" (( "(") (binary_expression "lVar12 + 0x148" (identifier "lVar12") (+ "+") (number_literal "0x148")) () ")"))))) (; ";")) (if_statement "if (*(char *)(lVar1 + 0x62b9) == '\0') {\nLAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\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_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;\n      goto LAB_001bb97e;\n    }" ({ "{") (labeled_statement "LAB_001bbaab:\n      if (cVar4 != '\0') goto LAB_001bb87a;" (statement_identifier "LAB_001bbaab") (: ":") (if_statement "if (cVar4 != '\0') goto LAB_001bb87a;" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001bb87a;" (goto "goto") (statement_identifier "LAB_001bb87a") (; ";")))) (goto_statement "goto LAB_001bb97e;" (goto "goto") (statement_identifier "LAB_001bb97e") (; ";")) (} "}"))) (if_statement "if (cVar4 != '\0') goto LAB_001bb87a;" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001bb87a;" (goto "goto") (statement_identifier "LAB_001bb87a") (; ";"))) (labeled_statement "LAB_001bb854:\n    cVar4 = *(char *)(lVar1 + 0x5051);" (statement_identifier "LAB_001bb854") (: ":") (expression_statement "cVar4 = *(char *)(lVar1 + 0x5051);" (assignment_expression "cVar4 = *(char *)(lVar1 + 0x5051)" (identifier "cVar4") (= "=") (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_001bb986;" (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_001bb986;" (goto "goto") (statement_identifier "LAB_001bb986") (; ";"))) (if_statement "if (cVar4 == '\0') {\n      __n = 0xe;\n      __s1 = ".text.unlikely";\n      local_80 = &PTR_s__text_unlikely_00427ee0;\n      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\n    }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (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 (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }\n      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;\n      cVar4 = *(char *)(lVar12 + 0x148);\n      goto LAB_001bbaab;\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 (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\n        __s1 = *local_80;\n        __n = strlen(__s1);\n      }" (while "while") (parenthesized_expression "(iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0)" (( "(") (comma_expression "iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0" (assignment_expression "iVar6 = strncmp(__s1,(char *)param_4,__n)" (identifier "iVar6") (= "=") (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 "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        local_80 = local_80 + 1;\n        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;\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_001bb98e;" (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_001bb98e;" (goto "goto") (statement_identifier "LAB_001bb98e") (; ";"))) (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 *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;" (assignment_expression "*(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar10 + 0xc9)" (* "*") (cast_expression "(byte *)(lVar10 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0xc9)" (( "(") (binary_expression "lVar10 + 0xc9" (identifier "lVar10") (+ "+") (number_literal "0xc9")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar10 + 0xc9) | 8" (pointer_expression "*(byte *)(lVar10 + 0xc9)" (* "*") (cast_expression "(byte *)(lVar10 + 0xc9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0xc9)" (( "(") (binary_expression "lVar10 + 0xc9" (identifier "lVar10") (+ "+") (number_literal "0xc9")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (expression_statement "cVar4 = *(char *)(lVar12 + 0x148);" (assignment_expression "cVar4 = *(char *)(lVar12 + 0x148)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)(lVar12 + 0x148)" (* "*") (cast_expression "(char *)(lVar12 + 0x148)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar12 + 0x148)" (( "(") (binary_expression "lVar12 + 0x148" (identifier "lVar12") (+ "+") (number_literal "0x148")) () ")"))))) (; ";")) (goto_statement "goto LAB_001bbaab;" (goto "goto") (statement_identifier "LAB_001bbaab") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    lVar11 = 7;\n    pbVar13 = (byte *)".dtors.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar19 = false;\n    bVar16 = (!bVar17 && !bVar16) == bVar17;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".init_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    bVar17 = false;\n    bVar16 = (!bVar19 && !bVar16) == bVar19;\n    if (bVar16) goto LAB_001bb830;\n    lVar11 = 0xc;\n    pbVar13 = (byte *)".fini_array.";\n    pbVar14 = param_4;\n    do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);\n    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;\n    bVar16 = false;\n    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';\n    if (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }\nLAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;\nLAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);\nLAB_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }\n  }" ({ "{") (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" (identifier "lVar11") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar13 = (byte *)".dtors.";" (assignment_expression "pbVar13 = (byte *)".dtors."" (identifier "pbVar13") (= "=") (cast_expression "(byte *)".dtors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors."" (" """) (string_content ".dtors.") (" """)))) (; ";")) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" (identifier "pbVar14") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);" (do "do") (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar11 == 0) break;" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" (identifier "lVar11") (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" (identifier "bVar17") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" (identifier "bVar19") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = (!bVar17 && !bVar16) == bVar17;" (assignment_expression "bVar16 = (!bVar17 && !bVar16) == bVar17" (identifier "bVar16") (= "=") (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" (( "(") (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" (! "!") (identifier "bVar17")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar17"))) (; ";")) (if_statement "if (bVar16) goto LAB_001bb830;" (if "if") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (goto_statement "goto LAB_001bb830;" (goto "goto") (statement_identifier "LAB_001bb830") (; ";"))) (expression_statement "lVar11 = 0xc;" (assignment_expression "lVar11 = 0xc" (identifier "lVar11") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar13 = (byte *)".init_array.";" (assignment_expression "pbVar13 = (byte *)".init_array."" (identifier "pbVar13") (= "=") (cast_expression "(byte *)".init_array."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".init_array."" (" """) (string_content ".init_array.") (" """)))) (; ";")) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" (identifier "pbVar14") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);" (do "do") (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar19 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar11 == 0) break;" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" (identifier "lVar11") (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar19 = *pbVar13 < *pbVar14;" (assignment_expression "bVar19 = *pbVar13 < *pbVar14" (identifier "bVar19") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = (!bVar19 && !bVar16) == bVar19;" (assignment_expression "bVar16 = (!bVar19 && !bVar16) == bVar19" (identifier "bVar16") (= "=") (binary_expression "(!bVar19 && !bVar16) == bVar19" (parenthesized_expression "(!bVar19 && !bVar16)" (( "(") (binary_expression "!bVar19 && !bVar16" (unary_expression "!bVar19" (! "!") (identifier "bVar19")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar19"))) (; ";")) (if_statement "if (bVar16) goto LAB_001bb830;" (if "if") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (goto_statement "goto LAB_001bb830;" (goto "goto") (statement_identifier "LAB_001bb830") (; ";"))) (expression_statement "lVar11 = 0xc;" (assignment_expression "lVar11 = 0xc" (identifier "lVar11") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar13 = (byte *)".fini_array.";" (assignment_expression "pbVar13 = (byte *)".fini_array."" (identifier "pbVar13") (= "=") (cast_expression "(byte *)".fini_array."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".fini_array."" (" """) (string_content ".fini_array.") (" """)))) (; ";")) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" (identifier "pbVar14") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    } while (bVar16);" (do "do") (compound_statement "{\n      if (lVar11 == 0) break;\n      lVar11 = lVar11 + -1;\n      bVar17 = *pbVar13 < *pbVar14;\n      bVar16 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar11 == 0) break;" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" (identifier "lVar11") (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" (identifier "bVar17") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (if_statement "if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;" (if "if") (parenthesized_expression "((!bVar17 && !bVar16) == bVar17)" (( "(") (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" (( "(") (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" (! "!") (identifier "bVar17")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar17")) () ")")) (goto_statement "goto LAB_001bb830;" (goto "goto") (statement_identifier "LAB_001bb830") (; ";"))) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "bVar19 = *(char *)(lVar1 + 0x1179) == '\0';" (assignment_expression "bVar19 = *(char *)(lVar1 + 0x1179) == '\0'" (identifier "bVar19") (= "=") (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 (!bVar19) {\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }" (if "if") (parenthesized_expression "(!bVar19)" (( "(") (unary_expression "!bVar19" (! "!") (identifier "bVar19")) () ")")) (compound_statement "{\n      lVar11 = 7;\n      pbVar13 = param_4;\n      pbVar14 = (byte *)".ctors";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar19) == bVar16;\n      if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }\n      goto LAB_001bb830;\n    }" ({ "{") (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" (identifier "lVar11") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" (identifier "pbVar13") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pbVar14 = (byte *)".ctors";" (assignment_expression "pbVar14 = (byte *)".ctors"" (identifier "pbVar14") (= "=") (cast_expression "(byte *)".ctors"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors"" (" """) (string_content ".ctors") (" """)))) (; ";")) (do_statement "do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);" (do "do") (compound_statement "{\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar19 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar11 == 0) break;" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" (identifier "lVar11") (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar19 = *pbVar13 == *pbVar14;" (assignment_expression "bVar19 = *pbVar13 == *pbVar14" (identifier "bVar19") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar19)" (( "(") (identifier "bVar19") () ")")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = (!bVar16 && !bVar19) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar19) == bVar16" (identifier "bVar16") (= "=") (binary_expression "(!bVar16 && !bVar19) == bVar16" (parenthesized_expression "(!bVar16 && !bVar19)" (( "(") (binary_expression "!bVar16 && !bVar19" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar19" (! "!") (identifier "bVar19"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (!bVar16) {\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }" (if "if") (parenthesized_expression "(!bVar16)" (( "(") (unary_expression "!bVar16" (! "!") (identifier "bVar16")) () ")")) (compound_statement "{\n        lVar11 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".dtors";\n        do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;\n      }" ({ "{") (expression_statement "lVar11 = 7;" (assignment_expression "lVar11 = 7" (identifier "lVar11") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" (identifier "pbVar13") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pbVar14 = (byte *)".dtors";" (assignment_expression "pbVar14 = (byte *)".dtors"" (identifier "pbVar14") (= "=") (cast_expression "(byte *)".dtors"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors"" (" """) (string_content ".dtors") (" """)))) (; ";")) (do_statement "do {\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar16);" (do "do") (compound_statement "{\n          if (lVar11 == 0) break;\n          lVar11 = lVar11 + -1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar11 == 0) break;" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" (identifier "lVar11") (= "=") (binary_expression "lVar11 + -1" (identifier "lVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" (identifier "bVar17") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (if_statement "if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;" (if "if") (parenthesized_expression "((!bVar17 && !bVar16) != bVar17)" (( "(") (binary_expression "(!bVar17 && !bVar16) != bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" (( "(") (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" (! "!") (identifier "bVar17")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (!= "!=") (identifier "bVar17")) () ")")) (goto_statement "goto LAB_001bb970;" (goto "goto") (statement_identifier "LAB_001bb970") (; ";"))) (} "}"))) (goto_statement "goto LAB_001bb830;" (goto "goto") (statement_identifier "LAB_001bb830") (; ";")) (} "}"))) (labeled_statement "LAB_001bb970:\n    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;" (statement_identifier "LAB_001bb970") (: ":") (if_statement "if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;" (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_001bb854;" (goto "goto") (statement_identifier "LAB_001bb854") (; ";")))) (labeled_statement "LAB_001bb97e:\n    cVar4 = *(char *)(lVar1 + 0x5051);" (statement_identifier "LAB_001bb97e") (: ":") (expression_statement "cVar4 = *(char *)(lVar1 + 0x5051);" (assignment_expression "cVar4 = *(char *)(lVar1 + 0x5051)" (identifier "cVar4") (= "=") (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_001bb986:\n    if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }" (statement_identifier "LAB_001bb986") (: ":") (if_statement "if (cVar4 == '\0') {\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);\n      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n      bVar16 = uVar9 < 8;\n      bVar19 = uVar9 == 8;\n      if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }\n    }" ({ "{") (labeled_statement "LAB_001bb98e:\n      uVar9 = *(ulong *)(*param_5 + 0x20);" (statement_identifier "LAB_001bb98e") (: ":") (expression_statement "uVar9 = *(ulong *)(*param_5 + 0x20);" (assignment_expression "uVar9 = *(ulong *)(*param_5 + 0x20)" (identifier "uVar9") (= "=") (pointer_expression "*(ulong *)(*param_5 + 0x20)" (* "*") (cast_expression "(ulong *)(*param_5 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 0x20)" (( "(") (binary_expression "*param_5 + 0x20" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";"))) (expression_statement "uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;" (assignment_expression "uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (identifier "uVar9") (= "=") (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18\n              | (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18\n              | (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" (identifier "uVar9") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" (( "(") (binary_expression "uVar9 & 0xff000000000000" (identifier "uVar9") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" (( "(") (binary_expression "uVar9 & 0xff0000000000" (identifier "uVar9") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" (( "(") (binary_expression "uVar9 & 0xff00000000" (identifier "uVar9") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" (( "(") (binary_expression "uVar9 & 0xff000000" (identifier "uVar9") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar9 << 0x38" (identifier "uVar9") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "bVar16 = uVar9 < 8;" (assignment_expression "bVar16 = uVar9 < 8" (identifier "bVar16") (= "=") (binary_expression "uVar9 < 8" (identifier "uVar9") (< "<") (number_literal "8"))) (; ";")) (expression_statement "bVar19 = uVar9 == 8;" (assignment_expression "bVar19 = uVar9 == 8" (identifier "bVar19") (= "=") (binary_expression "uVar9 == 8" (identifier "uVar9") (== "==") (number_literal "8"))) (; ";")) (if_statement "if (8 < uVar9) {\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }" (if "if") (parenthesized_expression "(8 < uVar9)" (( "(") (binary_expression "8 < uVar9" (number_literal "8") (< "<") (identifier "uVar9")) () ")")) (compound_statement "{\n        lVar12 = 7;\n        pbVar13 = param_4;\n        pbVar14 = (byte *)".ctors";\n        do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);\n        bVar17 = false;\n        bVar16 = (!bVar16 && !bVar19) == bVar16;\n        if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\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        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);\n        goto LAB_001bb87a;\n      }" ({ "{") (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" (identifier "lVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" (identifier "pbVar13") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pbVar14 = (byte *)".ctors";" (assignment_expression "pbVar14 = (byte *)".ctors"" (identifier "pbVar14") (= "=") (cast_expression "(byte *)".ctors"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors"" (" """) (string_content ".ctors") (" """)))) (; ";")) (do_statement "do {\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        } while (bVar19);" (do "do") (compound_statement "{\n          if (lVar12 == 0) break;\n          lVar12 = lVar12 + -1;\n          bVar16 = *pbVar13 < *pbVar14;\n          bVar19 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar12 == 0) break;" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" (identifier "lVar12") (= "=") (binary_expression "lVar12 + -1" (identifier "lVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar19 = *pbVar13 == *pbVar14;" (assignment_expression "bVar19 = *pbVar13 == *pbVar14" (identifier "bVar19") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar19)" (( "(") (identifier "bVar19") () ")")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = (!bVar16 && !bVar19) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar19) == bVar16" (identifier "bVar16") (= "=") (binary_expression "(!bVar16 && !bVar19) == bVar16" (parenthesized_expression "(!bVar16 && !bVar19)" (( "(") (binary_expression "!bVar16 && !bVar19" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar19" (! "!") (identifier "bVar19"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (bVar16) {\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }\n        else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\n        }" (if "if") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (compound_statement "{\nLAB_001bb9d7:\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".init_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) goto LAB_001bba30;\n        }" ({ "{") (labeled_statement "LAB_001bb9d7:\n          bVar19 = false;" (statement_identifier "LAB_001bb9d7") (: ":") (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" (identifier "bVar19") (= "=") (false "false")) (; ";"))) (expression_statement "lVar12 = 0xc;" (assignment_expression "lVar12 = 0xc" (identifier "lVar12") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar13 = *(byte **)(lVar10 + 0x28);" (assignment_expression "pbVar13 = *(byte **)(lVar10 + 0x28)" (identifier "pbVar13") (= "=") (pointer_expression "*(byte **)(lVar10 + 0x28)" (* "*") (cast_expression "(byte **)(lVar10 + 0x28)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + 0x28)" (( "(") (binary_expression "lVar10 + 0x28" (identifier "lVar10") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "pbVar14 = (byte *)".init_array";" (assignment_expression "pbVar14 = (byte *)".init_array"" (identifier "pbVar14") (= "=") (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 (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);" (do "do") (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar12 == 0) break;" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" (identifier "lVar12") (= "=") (binary_expression "lVar12 + -1" (identifier "lVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar19 = *pbVar13 < *pbVar14;" (assignment_expression "bVar19 = *pbVar13 < *pbVar14" (identifier "bVar19") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (expression_statement "bVar16 = (!bVar19 && !bVar16) == bVar19;" (assignment_expression "bVar16 = (!bVar19 && !bVar16) == bVar19" (identifier "bVar16") (= "=") (binary_expression "(!bVar19 && !bVar16) == bVar19" (parenthesized_expression "(!bVar19 && !bVar16)" (( "(") (binary_expression "!bVar19 && !bVar16" (unary_expression "!bVar19" (! "!") (identifier "bVar19")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar19"))) (; ";")) (if_statement "if (!bVar16) goto LAB_001bba30;" (if "if") (parenthesized_expression "(!bVar16)" (( "(") (unary_expression "!bVar16" (! "!") (identifier "bVar16")) () ")")) (goto_statement "goto LAB_001bba30;" (goto "goto") (statement_identifier "LAB_001bba30") (; ";"))) (} "}")) (else_clause "else {\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\n        }" (else "else") (compound_statement "{\n          lVar12 = 7;\n          pbVar13 = (byte *)".ctors.";\n          pbVar14 = param_4;\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar16 = (!bVar17 && !bVar16) == bVar17;\n          if (bVar16) goto LAB_001bb9d7;\nLAB_001bba30:\n          bVar19 = false;\n          lVar12 = 7;\n          pbVar13 = param_4;\n          pbVar14 = (byte *)".dtors";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          bVar17 = false;\n          bVar16 = (!bVar19 && !bVar16) == bVar19;\n          if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }\n          bVar19 = false;\n          lVar12 = 0xc;\n          pbVar13 = *(byte **)(lVar10 + 0x28);\n          pbVar14 = (byte *)".fini_array";\n          do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;\n        }" ({ "{") (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" (identifier "lVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar13 = (byte *)".ctors.";" (assignment_expression "pbVar13 = (byte *)".ctors."" (identifier "pbVar13") (= "=") (cast_expression "(byte *)".ctors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors."" (" """) (string_content ".ctors.") (" """)))) (; ";")) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" (identifier "pbVar14") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);" (do "do") (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar17 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar12 == 0) break;" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" (identifier "lVar12") (= "=") (binary_expression "lVar12 + -1" (identifier "lVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" (identifier "bVar17") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (expression_statement "bVar16 = (!bVar17 && !bVar16) == bVar17;" (assignment_expression "bVar16 = (!bVar17 && !bVar16) == bVar17" (identifier "bVar16") (= "=") (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" (( "(") (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" (! "!") (identifier "bVar17")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar17"))) (; ";")) (if_statement "if (bVar16) goto LAB_001bb9d7;" (if "if") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (goto_statement "goto LAB_001bb9d7;" (goto "goto") (statement_identifier "LAB_001bb9d7") (; ";"))) (labeled_statement "LAB_001bba30:\n          bVar19 = false;" (statement_identifier "LAB_001bba30") (: ":") (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" (identifier "bVar19") (= "=") (false "false")) (; ";"))) (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" (identifier "lVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar13 = param_4;" (assignment_expression "pbVar13 = param_4" (identifier "pbVar13") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pbVar14 = (byte *)".dtors";" (assignment_expression "pbVar14 = (byte *)".dtors"" (identifier "pbVar14") (= "=") (cast_expression "(byte *)".dtors"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors"" (" """) (string_content ".dtors") (" """)))) (; ";")) (do_statement "do {\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);" (do "do") (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar12 == 0) break;" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" (identifier "lVar12") (= "=") (binary_expression "lVar12 + -1" (identifier "lVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar19 = *pbVar13 < *pbVar14;" (assignment_expression "bVar19 = *pbVar13 < *pbVar14" (identifier "bVar19") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = (!bVar19 && !bVar16) == bVar19;" (assignment_expression "bVar16 = (!bVar19 && !bVar16) == bVar19" (identifier "bVar16") (= "=") (binary_expression "(!bVar19 && !bVar16) == bVar19" (parenthesized_expression "(!bVar19 && !bVar16)" (( "(") (binary_expression "!bVar19 && !bVar16" (unary_expression "!bVar19" (! "!") (identifier "bVar19")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar19"))) (; ";")) (if_statement "if (!bVar16) {\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }" (if "if") (parenthesized_expression "(!bVar16)" (( "(") (unary_expression "!bVar16" (! "!") (identifier "bVar16")) () ")")) (compound_statement "{\n            lVar12 = 7;\n            pbVar13 = (byte *)".dtors.";\n            pbVar14 = param_4;\n            do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);\n            bVar16 = (!bVar17 && !bVar16) == bVar17;\n            if (!bVar16) goto LAB_001bb878;\n          }" ({ "{") (expression_statement "lVar12 = 7;" (assignment_expression "lVar12 = 7" (identifier "lVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar13 = (byte *)".dtors.";" (assignment_expression "pbVar13 = (byte *)".dtors."" (identifier "pbVar13") (= "=") (cast_expression "(byte *)".dtors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors."" (" """) (string_content ".dtors.") (" """)))) (; ";")) (expression_statement "pbVar14 = param_4;" (assignment_expression "pbVar14 = param_4" (identifier "pbVar14") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            } while (bVar16);" (do "do") (compound_statement "{\n              if (lVar12 == 0) break;\n              lVar12 = lVar12 + -1;\n              bVar17 = *pbVar13 < *pbVar14;\n              bVar16 = *pbVar13 == *pbVar14;\n              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n            }" ({ "{") (if_statement "if (lVar12 == 0) break;" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" (identifier "lVar12") (= "=") (binary_expression "lVar12 + -1" (identifier "lVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" (identifier "bVar17") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (expression_statement "bVar16 = (!bVar17 && !bVar16) == bVar17;" (assignment_expression "bVar16 = (!bVar17 && !bVar16) == bVar17" (identifier "bVar16") (= "=") (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" (( "(") (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" (! "!") (identifier "bVar17")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar17"))) (; ";")) (if_statement "if (!bVar16) goto LAB_001bb878;" (if "if") (parenthesized_expression "(!bVar16)" (( "(") (unary_expression "!bVar16" (! "!") (identifier "bVar16")) () ")")) (goto_statement "goto LAB_001bb878;" (goto "goto") (statement_identifier "LAB_001bb878") (; ";"))) (} "}"))) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" (identifier "bVar19") (= "=") (false "false")) (; ";")) (expression_statement "lVar12 = 0xc;" (assignment_expression "lVar12 = 0xc" (identifier "lVar12") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar13 = *(byte **)(lVar10 + 0x28);" (assignment_expression "pbVar13 = *(byte **)(lVar10 + 0x28)" (identifier "pbVar13") (= "=") (pointer_expression "*(byte **)(lVar10 + 0x28)" (* "*") (cast_expression "(byte **)(lVar10 + 0x28)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + 0x28)" (( "(") (binary_expression "lVar10 + 0x28" (identifier "lVar10") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "pbVar14 = (byte *)".fini_array";" (assignment_expression "pbVar14 = (byte *)".fini_array"" (identifier "pbVar14") (= "=") (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 (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          } while (bVar16);" (do "do") (compound_statement "{\n            if (lVar12 == 0) break;\n            lVar12 = lVar12 + -1;\n            bVar19 = *pbVar13 < *pbVar14;\n            bVar16 = *pbVar13 == *pbVar14;\n            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;\n            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          }" ({ "{") (if_statement "if (lVar12 == 0) break;" (if "if") (parenthesized_expression "(lVar12 == 0)" (( "(") (binary_expression "lVar12 == 0" (identifier "lVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar12 = lVar12 + -1;" (assignment_expression "lVar12 = lVar12 + -1" (identifier "lVar12") (= "=") (binary_expression "lVar12 + -1" (identifier "lVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar19 = *pbVar13 < *pbVar14;" (assignment_expression "bVar19 = *pbVar13 < *pbVar14" (identifier "bVar19") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar20 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar20")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (if_statement "if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;" (if "if") (parenthesized_expression "((!bVar19 && !bVar16) != bVar19)" (( "(") (binary_expression "(!bVar19 && !bVar16) != bVar19" (parenthesized_expression "(!bVar19 && !bVar16)" (( "(") (binary_expression "!bVar19 && !bVar16" (unary_expression "!bVar19" (! "!") (identifier "bVar19")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (!= "!=") (identifier "bVar19")) () ")")) (goto_statement "goto LAB_001bb878;" (goto "goto") (statement_identifier "LAB_001bb878") (; ";"))) (} "}")))) (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 "cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);" (assignment_expression "cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148)" (identifier "cVar4") (= "=") (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_001bb87a;" (goto "goto") (statement_identifier "LAB_001bb87a") (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_001bb878:\n  cVar4 = '\0';" (statement_identifier "LAB_001bb878") (: ":") (expression_statement "cVar4 = '\0';" (assignment_expression "cVar4 = '\0'" (identifier "cVar4") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (labeled_statement "LAB_001bb87a:\n  uVar9 = *(ulong *)(lVar10 + 0x70);" (statement_identifier "LAB_001bb87a") (: ":") (expression_statement "uVar9 = *(ulong *)(lVar10 + 0x70);" (assignment_expression "uVar9 = *(ulong *)(lVar10 + 0x70)" (identifier "uVar9") (= "=") (pointer_expression "*(ulong *)(lVar10 + 0x70)" (* "*") (cast_expression "(ulong *)(lVar10 + 0x70)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x70)" (( "(") (binary_expression "lVar10 + 0x70" (identifier "lVar10") (+ "+") (number_literal "0x70")) () ")"))))) (; ";"))) (expression_statement "uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);" (assignment_expression "uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4)" (identifier "uVar8") (= "=") (call_expression "FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4)" (identifier "FUN_00228100") (argument_list "(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4)" (( "(") (identifier "lVar10") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_7") (, ",") (identifier "cVar4") () ")")))) (; ";")) (expression_statement "*param_9 = uVar8;" (assignment_expression "*param_9 = uVar8" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }" (if "if") (parenthesized_expression "(((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5)))" (( "(") (binary_expression "((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))" (parenthesized_expression "((uVar9 & 2) != 0)" (( "(") (binary_expression "(uVar9 & 2) != 0" (parenthesized_expression "(uVar9 & 2)" (( "(") (binary_expression "uVar9 & 2" (identifier "uVar9") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))" (( "(") (binary_expression "((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5)" (parenthesized_expression "((uint)uVar9 & 5)" (( "(") (binary_expression "(uint)uVar9 & 5" (cast_expression "(uint)uVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar9")) (& "&") (number_literal "5")) () ")")) (!= "!=") (parenthesized_expression "((uint)*(undefined8 *)(lVar10 + 0x70) & 5)" (( "(") (binary_expression "(uint)*(undefined8 *)(lVar10 + 0x70) & 5" (binary_expression "(uint)*(undefined8 *)(lVar10 + 0x70)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined8 *)(lVar10 + 0x70)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x70)" (( "(") (binary_expression "lVar10 + 0x70" (identifier "lVar10") (+ "+") (number_literal "0x70")) () ")")))) (& "&") (number_literal "5")) () ")"))) () ")"))) () ")")) (compound_statement "{\n    uVar5 = FUN_001a5050(param_1,lVar10,0);\n    *(undefined4 *)(lVar10 + 0x78) = uVar5;\n  }" ({ "{") (expression_statement "uVar5 = FUN_001a5050(param_1,lVar10,0);" (assignment_expression "uVar5 = FUN_001a5050(param_1,lVar10,0)" (identifier "uVar5") (= "=") (call_expression "FUN_001a5050(param_1,lVar10,0)" (identifier "FUN_001a5050") (argument_list "(param_1,lVar10,0)" (( "(") (identifier "param_1") (, ",") (identifier "lVar10") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(lVar10 + 0x78) = uVar5;" (assignment_expression "*(undefined4 *)(lVar10 + 0x78) = uVar5" (pointer_expression "*(undefined4 *)(lVar10 + 0x78)" (* "*") (cast_expression "(undefined4 *)(lVar10 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x78)" (( "(") (binary_expression "lVar10 + 0x78" (identifier "lVar10") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (} "}"))) (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 lVar10;" (return "return") (identifier "lVar10") (; ";")) (} "}")))

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

type_7 * __thiscall
gold::var_20::layout<64,var_2>
          (var_20 *this,Sized_relobj_file<64,var_2> *object,type_5 shndx,var_16 *name,
          Shdr<64,var_2> *shdr,type_5 sh_type,type_5 reloc_shndx,type_5 param_7,type_9 *off)

{
  type_1 *var_3;
  type_2 var_13;
  type_3 p_Var3;
  type_4 *pSVar4;
  type_5 var_14;
  type_5 var_19;
  bool var_36;
  type_6 OVar8;
  int var_28;
  char *pcVar10;
  type_7 *this_00;
  type_8 iVar11;
  type_9 oVar12;
  type_10 var_37;
  long var_8;
  char var_23;
  size_t __n;
  type_11 *var_10;
  type_12 *var_32;
  type_11 *this_01;
  type_12 *var_33;
  type_13 uVar20;
  bool var_34;
  type_13 uVar22;
  bool var_35;
  type_12 bVar24;
  char **var_29;
  type_14 __node_gen;
  type_15 var_7;
  type_5 local_50;
  type_13 var_11 [24];
  type_11 *var_9;
  
  bVar24 = 0;
  *off = 0;
  var_36 = var_1<64,var_2>(this,object,name,shdr);
  if (!var_36) {
    return (type_7 *)0x0;
  }
  var_3 = parameters->options_;
  if (var_3 == (type_1 *)0x0) goto LAB_001bba79;
  if ((var_3->relocatable_).value == false) {
LAB_001bb56b:
    uVar20 = 0;
    uVar22 = (var_3->text_unlikely_segment_).value == false;
    if (!(bool)uVar22) {
      (*(object->super_Sized_relobj<64,var_2>).super_Relobj.super_Object._vptr_Object[0x10])
                ((var_4<var_5::Relobj*,var_6> *)&var_7,object,(type_10)shndx);
      var_8 = 0xe;
      var_10 = (type_11 *)".text.unlikely";
      var_9 = (type_11 *)var_7;
      do {
        this_01 = var_9;
        if (var_8 == 0) break;
        var_8 = var_8 + -1;
        this_01 = var_9 + (type_10)bVar24 * -2 + 1;
        uVar20 = (type_12)*var_10 < (type_12)*var_9;
        uVar22 = *var_10 == *var_9;
        var_10 = var_10 + (type_10)bVar24 * -2 + 1;
        var_9 = this_01;
      } while ((bool)uVar22);
      if ((!(bool)uVar20 && !(bool)uVar22) == (bool)uVar20) {
        if ((type_13 *)var_7 != var_11) {
          this_01 = (type_11 *)var_7;
          var_12((void *)var_7);
        }
        var_13 = shdr->p_->sh_flags;
        var_14 = (type_5)(type_12)(var_13 >> 0x38) | ((type_5)(var_13 >> 0x20) & 0xff0000) >> 8;
        if (parameters->options_ == (type_1 *)0x0) goto LAB_001bbb53;
        var_19 = var_14 & 0xfffff50f;
        if ((parameters->options_->relocatable_).value != false) {
          var_19 = var_14 & 0xfffff58f;
        }
        pcVar10 = var_15<var_16>::var_17(&this->namepool_,".text.unlikely",true,&var_7);
        this_00 = var_18(this,pcVar10,var_7,sh_type,
                                     (type_10)(var_19 | (type_5)(var_13 >> 0x18) & 0xff0000 |
                                            (type_5)(var_13 >> 8) & 0xff000000),ORDER_INVALID,false);
        this_00->field_0xca = this_00->field_0xca | 0x80;
        goto LAB_001bb748;
      }
      if ((type_13 *)var_7 != var_11) {
        var_12((void *)var_7);
      }
    }
    this_01 = (type_11 *)&this->section_segment_map_;
    var_7 = (type_15)object;
    local_50 = shndx;
    iVar11 = std::
             _Rb_tree<std::var_4<var_5::Relobj*,var_6>,_std::var_4<const_std::var_4<var_5::Relobj*,var_6>,_gold::var_20::Unique_segment_info*>,_std::_Select1st<std::var_4<const_std::var_4<var_5::Relobj*,var_6>,_gold::var_20::Unique_segment_info*>var_21>,_std::less<std::var_4<var_5::Relobj*,var_6>var_21>,_std::allocator<std::var_4<const_std::var_4<var_5::Relobj*,var_6>,_gold::var_20::Unique_segment_info*>var_21>var_21>
             ::var_22((_Rb_tree<std::var_4<var_5::Relobj*,var_6>,_std::var_4<const_std::var_4<var_5::Relobj*,var_6>,_gold::var_20::Unique_segment_info*>,_std::_Select1st<std::var_4<const_std::var_4<var_5::Relobj*,var_6>,_gold::var_20::Unique_segment_info*>var_21>,_std::less<std::var_4<var_5::Relobj*,var_6>var_21>,_std::allocator<std::var_4<const_std::var_4<var_5::Relobj*,var_6>,_gold::var_20::Unique_segment_info*>var_21>var_21>
                     *)this_01,(var_4<var_5::Relobj*,var_6> *)&var_7);
    if ((_Rb_tree_header *)iVar11._M_node ==
        &(this->section_segment_map_)._M_t._M_impl.super__Rb_tree_header) {
      var_37 = shdr->p_->sh_flags;
      this_00 = choose_output_section
                          (this,(Relobj *)object,name,sh_type,
                           var_37 >> 0x38 | (var_37 & 0xff000000000000) >> 0x28 |
                           (var_37 & 0xff0000000000) >> 0x18 | (var_37 & 0xff00000000) >> 8 |
                           (var_37 & 0xff000000) << 8 | (var_37 & 0xff0000) << 0x18 |
                           (var_37 & 0xff00) << 0x28 | var_37 << 0x38,true,ORDER_INVALID,false,false
                           ,true);
      if (this_00 == (type_7 *)0x0) {
        return (type_7 *)0x0;
      }
    }
    else {
      var_13 = shdr->p_->sh_flags;
      var_14 = (type_5)(type_12)(var_13 >> 0x38) | ((type_5)(var_13 >> 0x20) & 0xff0000) >> 8;
      if (parameters->options_ == (type_1 *)0x0) {
LAB_001bbb53:
                    /* WARNING: Subroutine does not return */
        Target::abi_pagesize(this_01);
      }
      var_19 = var_14 & 0xfffff50f;
      if ((parameters->options_->relocatable_).value != false) {
        var_19 = var_14 & 0xfffff58f;
      }
      pcVar10 = var_15<var_16>::var_17
                          (&this->namepool_,*(char **)iVar11._M_node[1]._M_left,true,&var_7);
      this_00 = var_18(this,pcVar10,var_7,sh_type,
                                   (type_10)(var_19 | (type_5)(var_13 >> 0x18) & 0xff0000 |
                                          (type_5)(var_13 >> 8) & 0xff000000),ORDER_INVALID,false);
      if (-1 < (char)this_00->field_0xca) {
        this_00->field_0xca = this_00->field_0xca | 0x80;
        p_Var3 = iVar11._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 {
    var_37 = shdr->p_->sh_flags;
    if (((var_37 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;
    name = var_15<var_16>::var_17(&this->namepool_,name,true,(type_15 *)0x0);
    this_00 = make_output_section(this,name,sh_type,
                                  (type_10)((type_5)(type_12)(var_37 >> 0x38) |
                                          (type_5)((var_37 & 0xff000000000000) >> 0x28) & 0xfffff7ff |
                                          (type_5)(var_37 >> 0x18) & 0xff0000 |
                                         (type_5)(var_37 >> 8) & 0xff000000),ORDER_INVALID,false);
  }
LAB_001bb748:
  pSVar4 = this->script_options_;
  var_23 = (pSVar4->script_sections_).saw_sections_clause_;
  var_3 = parameters->options_;
  if ((bool)var_23 != false) {
    if (var_3 == (type_1 *)0x0) goto LAB_001bba79;
    goto LAB_001bb87a;
  }
  if (var_3 == (type_1 *)0x0) {
LAB_001bba79:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  var_36 = false;
  var_35 = (var_3->relocatable_).value == false;
  if (!var_35) goto LAB_001bb970;
  var_8 = 7;
  var_32 = (type_12 *)".ctors.";
  var_33 = (type_12 *)name;
  do {
    if (var_8 == 0) break;
    var_8 = var_8 + -1;
    var_36 = *var_32 < *var_33;
    var_35 = *var_32 == *var_33;
    var_32 = var_32 + (type_10)bVar24 * -2 + 1;
    var_33 = var_33 + (type_10)bVar24 * -2 + 1;
  } while (var_35);
  var_34 = false;
  var_36 = (!var_36 && !var_35) == var_36;
  if (var_36) {
LAB_001bb830:
    this_00->field_0xc9 = this_00->field_0xc9 | 8;
    var_23 = (pSVar4->script_sections_).saw_sections_clause_;
    if ((var_3->text_reorder_).value == false) {
LAB_001bbaab:
      if (var_23 != '\0') goto LAB_001bb87a;
      goto LAB_001bb97e;
    }
    if ((bool)var_23 != false) goto LAB_001bb87a;
LAB_001bb854:
    var_23 = (var_3->relocatable_).value;
    if (this->section_ordering_specified_ != false) goto LAB_001bb986;
    if ((bool)var_23 == false) {
      __n = 0xe;
      pcVar10 = ".text.unlikely";
      var_29 = (char **)var_24(var_25*)::var_26;
      while (var_28 = var_27(pcVar10,name,__n), var_28 != 0) {
        var_29 = var_29 + 1;
        if (var_29 == var_30) goto LAB_001bb98e;
        pcVar10 = *var_29;
        __n = var_31(pcVar10);
      }
      this_00->field_0xc9 = this_00->field_0xc9 | 8;
      var_23 = (pSVar4->script_sections_).saw_sections_clause_;
      goto LAB_001bbaab;
    }
  }
  else {
    var_8 = 7;
    var_32 = (type_12 *)".dtors.";
    var_33 = (type_12 *)name;
    do {
      if (var_8 == 0) break;
      var_8 = var_8 + -1;
      var_34 = *var_32 < *var_33;
      var_36 = *var_32 == *var_33;
      var_32 = var_32 + (type_10)bVar24 * -2 + 1;
      var_33 = var_33 + (type_10)bVar24 * -2 + 1;
    } while (var_36);
    var_35 = false;
    var_36 = (!var_34 && !var_36) == var_34;
    if (var_36) goto LAB_001bb830;
    var_8 = 0xc;
    var_32 = (type_12 *)".init_array.";
    var_33 = (type_12 *)name;
    do {
      if (var_8 == 0) break;
      var_8 = var_8 + -1;
      var_35 = *var_32 < *var_33;
      var_36 = *var_32 == *var_33;
      var_32 = var_32 + (type_10)bVar24 * -2 + 1;
      var_33 = var_33 + (type_10)bVar24 * -2 + 1;
    } while (var_36);
    var_34 = false;
    var_36 = (!var_35 && !var_36) == var_35;
    if (var_36) goto LAB_001bb830;
    var_8 = 0xc;
    var_32 = (type_12 *)".fini_array.";
    var_33 = (type_12 *)name;
    do {
      if (var_8 == 0) break;
      var_8 = var_8 + -1;
      var_34 = *var_32 < *var_33;
      var_36 = *var_32 == *var_33;
      var_32 = var_32 + (type_10)bVar24 * -2 + 1;
      var_33 = var_33 + (type_10)bVar24 * -2 + 1;
    } while (var_36);
    if ((!var_34 && !var_36) == var_34) goto LAB_001bb830;
    var_36 = false;
    var_35 = (var_3->ctors_in_init_array_).value == false;
    if (!var_35) {
      var_8 = 7;
      var_32 = (type_12 *)name;
      var_33 = (type_12 *)".ctors";
      do {
        if (var_8 == 0) break;
        var_8 = var_8 + -1;
        var_36 = *var_32 < *var_33;
        var_35 = *var_32 == *var_33;
        var_32 = var_32 + (type_10)bVar24 * -2 + 1;
        var_33 = var_33 + (type_10)bVar24 * -2 + 1;
      } while (var_35);
      var_34 = false;
      var_36 = (!var_36 && !var_35) == var_36;
      if (!var_36) {
        var_8 = 7;
        var_32 = (type_12 *)name;
        var_33 = (type_12 *)".dtors";
        do {
          if (var_8 == 0) break;
          var_8 = var_8 + -1;
          var_34 = *var_32 < *var_33;
          var_36 = *var_32 == *var_33;
          var_32 = var_32 + (type_10)bVar24 * -2 + 1;
          var_33 = var_33 + (type_10)bVar24 * -2 + 1;
        } while (var_36);
        if ((!var_34 && !var_36) != var_34) goto LAB_001bb970;
      }
      goto LAB_001bb830;
    }
LAB_001bb970:
    if ((var_3->text_reorder_).value != false) goto LAB_001bb854;
LAB_001bb97e:
    var_23 = (var_3->relocatable_).value;
LAB_001bb986:
    if (var_23 == '\0') {
LAB_001bb98e:
      var_37 = shdr->p_->sh_size;
      var_37 = var_37 >> 0x38 | (var_37 & 0xff000000000000) >> 0x28 |
               (var_37 & 0xff0000000000) >> 0x18 | (var_37 & 0xff00000000) >> 8 |
               (var_37 & 0xff000000) << 8 | (var_37 & 0xff0000) << 0x18 | (var_37 & 0xff00) << 0x28
               | var_37 << 0x38;
      var_36 = var_37 < 8;
      var_35 = var_37 == 8;
      if (8 < var_37) {
        var_8 = 7;
        var_32 = (type_12 *)name;
        var_33 = (type_12 *)".ctors";
        do {
          if (var_8 == 0) break;
          var_8 = var_8 + -1;
          var_36 = *var_32 < *var_33;
          var_35 = *var_32 == *var_33;
          var_32 = var_32 + (type_10)bVar24 * -2 + 1;
          var_33 = var_33 + (type_10)bVar24 * -2 + 1;
        } while (var_35);
        var_34 = false;
        var_36 = (!var_36 && !var_35) == var_36;
        if (var_36) {
LAB_001bb9d7:
          var_35 = false;
          var_8 = 0xc;
          var_32 = (type_12 *)this_00->name_;
          var_33 = (type_12 *)".init_array";
          do {
            if (var_8 == 0) break;
            var_8 = var_8 + -1;
            var_35 = *var_32 < *var_33;
            var_36 = *var_32 == *var_33;
            var_32 = var_32 + (type_10)bVar24 * -2 + 1;
            var_33 = var_33 + (type_10)bVar24 * -2 + 1;
          } while (var_36);
          var_36 = (!var_35 && !var_36) == var_35;
          if (!var_36) goto LAB_001bba30;
        }
        else {
          var_8 = 7;
          var_32 = (type_12 *)".ctors.";
          var_33 = (type_12 *)name;
          do {
            if (var_8 == 0) break;
            var_8 = var_8 + -1;
            var_34 = *var_32 < *var_33;
            var_36 = *var_32 == *var_33;
            var_32 = var_32 + (type_10)bVar24 * -2 + 1;
            var_33 = var_33 + (type_10)bVar24 * -2 + 1;
          } while (var_36);
          var_36 = (!var_34 && !var_36) == var_34;
          if (var_36) goto LAB_001bb9d7;
LAB_001bba30:
          var_35 = false;
          var_8 = 7;
          var_32 = (type_12 *)name;
          var_33 = (type_12 *)".dtors";
          do {
            if (var_8 == 0) break;
            var_8 = var_8 + -1;
            var_35 = *var_32 < *var_33;
            var_36 = *var_32 == *var_33;
            var_32 = var_32 + (type_10)bVar24 * -2 + 1;
            var_33 = var_33 + (type_10)bVar24 * -2 + 1;
          } while (var_36);
          var_34 = false;
          var_36 = (!var_35 && !var_36) == var_35;
          if (!var_36) {
            var_8 = 7;
            var_32 = (type_12 *)".dtors.";
            var_33 = (type_12 *)name;
            do {
              if (var_8 == 0) break;
              var_8 = var_8 + -1;
              var_34 = *var_32 < *var_33;
              var_36 = *var_32 == *var_33;
              var_32 = var_32 + (type_10)bVar24 * -2 + 1;
              var_33 = var_33 + (type_10)bVar24 * -2 + 1;
            } while (var_36);
            var_36 = (!var_34 && !var_36) == var_34;
            if (!var_36) goto LAB_001bb878;
          }
          var_35 = false;
          var_8 = 0xc;
          var_32 = (type_12 *)this_00->name_;
          var_33 = (type_12 *)".fini_array";
          do {
            if (var_8 == 0) break;
            var_8 = var_8 + -1;
            var_35 = *var_32 < *var_33;
            var_36 = *var_32 == *var_33;
            var_32 = var_32 + (type_10)bVar24 * -2 + 1;
            var_33 = var_33 + (type_10)bVar24 * -2 + 1;
          } while (var_36);
          if ((!var_35 && !var_36) != var_35) goto LAB_001bb878;
        }
        __node_gen._M_h = (type_16 *)&var_39;
        var_7 = (type_15)object;
        local_50 = shndx;
        std::
        _Hashtable<std::var_4<gold::Relobj*,var_6>,_std::var_4<gold::Relobj*,var_6>,_std::allocator<std::var_4<gold::Relobj*,var_6>var_21>,_std::__detail::_Identity,_std::equal_to<std::var_4<gold::Relobj*,var_6>var_21>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_38<true,var_2,var_2>var_21>
        ::
        _M_insert<std::var_4<gold::Relobj*,var_6>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::var_4<gold::Relobj*,var_6>,var_2>var_21>var_21>var_21>
                  ((_Hashtable<std::var_4<gold::Relobj*,var_6>,_std::var_4<gold::Relobj*,var_6>,_std::allocator<std::var_4<gold::Relobj*,var_6>var_21>,_std::__detail::_Identity,_std::equal_to<std::var_4<gold::Relobj*,var_6>var_21>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_38<true,var_2,var_2>var_21>
                    *)&var_39,&var_7,&__node_gen,1);
        var_23 = (this->script_options_->script_sections_).saw_sections_clause_;
        goto LAB_001bb87a;
      }
    }
  }
LAB_001bb878:
  var_23 = false;
LAB_001bb87a:
  var_37 = this_00->flags_;
  oVar12 = type_7::add_input_section<64,var_2>
                     (this_00,this,object,shndx,name,shdr,reloc_shndx,(bool)var_23);
  *off = oVar12;
  if (((var_37 & 2) != 0) && (((type_5)var_37 & 5) != ((type_5)this_00->flags_ & 5))) {
    OVar8 = var_40(this,this_00,false);
    this_00->order_ = OVar8;
  }
  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: (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: (type_identifier) 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: (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: (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) (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)))))) (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: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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)) (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) (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) (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: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) 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) (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) (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: (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: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (binary_expression left: (binary_expression left: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) right: (number_literal))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) 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: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (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;
  uint uVar2;
  uint uVar3;
  char cVar4;
  undefined4 uVar5;
  int iVar6;
  undefined8 uVar7;
  undefined8 uVar8;
  ulong uVar9;
  long lVar10;
  long lVar11;
  long lVar12;
  char *__s1;
  size_t __n;
  byte *pbVar13;
  byte *pbVar14;
  undefined1 uVar15;
  bool bVar16;
  bool bVar17;
  undefined1 uVar18;
  bool bVar19;
  byte bVar20;
  undefined **local_80;
  undefined *local_60;
  byte *local_58;
  undefined4 local_50;
  byte local_48 [24];
  
  bVar20 = 0;
  *param_9 = 0;
  cVar4 = FUN_001b4420(param_1,param_2,param_4,param_5);
  if (cVar4 == '\0') {
    return 0;
  }
  lVar10 = *(long *)(PTR_DAT_0043e6b0 + 0x10);
  if (lVar10 == 0) goto LAB_001bba79;
  if (*(char *)(lVar10 + 0x5051) == '\0') {
LAB_001bb56b:
    uVar15 = 0;
    uVar18 = *(char *)(lVar10 + 0x8f19) == '\0';
    if (!(bool)uVar18) {
      (**(code **)(*(long *)param_2 + 0x80))(&local_58,param_2,param_3);
      lVar10 = 0xe;
      pbVar13 = (byte *)".text.unlikely";
      pbVar14 = local_58;
      do {
        if (lVar10 == 0) break;
        lVar10 = lVar10 + -1;
        uVar15 = *pbVar13 < *pbVar14;
        uVar18 = *pbVar13 == *pbVar14;
        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
      } while ((bool)uVar18);
      if ((!(bool)uVar15 && !(bool)uVar18) == (bool)uVar15) {
        if (local_58 != local_48) {
          FUN_002dac70(local_58);
        }
        uVar8 = *(undefined8 *)(*param_5 + 8);
        uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;
        if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) goto LAB_001bbb53;
        uVar3 = uVar2 & 0xfffff50f;
        if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {
          uVar3 = uVar2 & 0xfffff58f;
        }
        uVar7 = FUN_0026e6a0(param_1 + 0x10,".text.unlikely",1,&local_58);
        lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,
                              uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |
                              (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);
        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;
        goto LAB_001bb748;
      }
      if (local_58 != local_48) {
        FUN_002dac70(local_58);
      }
    }
    local_58 = param_2;
    local_50 = param_3;
    lVar12 = FUN_001b4c30(param_1 + 0x3e0,&local_58);
    if (lVar12 == param_1 + 1000) {
      uVar9 = *(ulong *)(*param_5 + 8);
      lVar10 = FUN_001acf30(param_1,param_2,param_4,param_6,
                            uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |
                            (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |
                            (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |
                            (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38,1,0,0,0,1);
      if (lVar10 == 0) {
        return 0;
      }
    }
    else {
      uVar8 = *(undefined8 *)(*param_5 + 8);
      uVar2 = (uint)(byte)((ulong)uVar8 >> 0x38) | ((uint)((ulong)uVar8 >> 0x20) & 0xff0000) >> 8;
      if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {
LAB_001bbb53:
                    /* WARNING: Subroutine does not return */
        FUN_001a4340();
      }
      uVar3 = uVar2 & 0xfffff50f;
      if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) != '\0') {
        uVar3 = uVar2 & 0xfffff58f;
      }
      uVar7 = FUN_0026e6a0(param_1 + 0x10,**(undefined8 **)(lVar12 + 0x30),1,&local_58);
      lVar10 = FUN_001acd20(param_1,uVar7,local_58,param_6,
                            uVar3 | (uint)((ulong)uVar8 >> 0x18) & 0xff0000 |
                            (uint)((ulong)uVar8 >> 8) & 0xff000000,0,0);
      if (-1 < (char)*(byte *)(lVar10 + 0xca)) {
        *(byte *)(lVar10 + 0xca) = *(byte *)(lVar10 + 0xca) | 0x80;
        lVar12 = *(long *)(lVar12 + 0x30);
        *(undefined8 *)(lVar10 + 0xd8) = *(undefined8 *)(lVar12 + 8);
        *(undefined8 *)(lVar10 + 0xe0) = *(undefined8 *)(lVar12 + 0x10);
      }
    }
  }
  else {
    uVar9 = *(ulong *)(*param_5 + 8);
    if (((uVar9 & 0xff000000000000) >> 0x28 & 0x200) == 0) goto LAB_001bb56b;
    param_4 = (byte *)FUN_0026e6a0(param_1 + 0x10,param_4,1,0);
    lVar10 = FUN_001a8f30(param_1,param_4,param_6,
                          (uint)(byte)(uVar9 >> 0x38) |
                          (uint)((uVar9 & 0xff000000000000) >> 0x28) & 0xfffff7ff |
                          (uint)(uVar9 >> 0x18) & 0xff0000 | (uint)(uVar9 >> 8) & 0xff000000,0,0);
  }
LAB_001bb748:
  lVar12 = *(long *)(param_1 + 8);
  cVar4 = *(char *)(lVar12 + 0x148);
  lVar1 = *(long *)(PTR_DAT_0043e6b0 + 0x10);
  if (cVar4 != '\0') {
    if (lVar1 == 0) goto LAB_001bba79;
    goto LAB_001bb87a;
  }
  if (lVar1 == 0) {
LAB_001bba79:
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/parameters.h",0x5c,"options");
  }
  bVar16 = false;
  bVar19 = *(char *)(lVar1 + 0x5051) == '\0';
  if (!bVar19) goto LAB_001bb970;
  lVar11 = 7;
  pbVar13 = (byte *)".ctors.";
  pbVar14 = param_4;
  do {
    if (lVar11 == 0) break;
    lVar11 = lVar11 + -1;
    bVar16 = *pbVar13 < *pbVar14;
    bVar19 = *pbVar13 == *pbVar14;
    pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
    pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
  } while (bVar19);
  bVar17 = false;
  bVar16 = (!bVar16 && !bVar19) == bVar16;
  if (bVar16) {
LAB_001bb830:
    *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;
    cVar4 = *(char *)(lVar12 + 0x148);
    if (*(char *)(lVar1 + 0x62b9) == '\0') {
LAB_001bbaab:
      if (cVar4 != '\0') goto LAB_001bb87a;
      goto LAB_001bb97e;
    }
    if (cVar4 != '\0') goto LAB_001bb87a;
LAB_001bb854:
    cVar4 = *(char *)(lVar1 + 0x5051);
    if (*(char *)(param_1 + 0x371) != '\0') goto LAB_001bb986;
    if (cVar4 == '\0') {
      __n = 0xe;
      __s1 = ".text.unlikely";
      local_80 = &PTR_s__text_unlikely_00427ee0;
      while (iVar6 = strncmp(__s1,(char *)param_4,__n), iVar6 != 0) {
        local_80 = local_80 + 1;
        if (local_80 == &PTR_s_aranges_00427f00) goto LAB_001bb98e;
        __s1 = *local_80;
        __n = strlen(__s1);
      }
      *(byte *)(lVar10 + 0xc9) = *(byte *)(lVar10 + 0xc9) | 8;
      cVar4 = *(char *)(lVar12 + 0x148);
      goto LAB_001bbaab;
    }
  }
  else {
    lVar11 = 7;
    pbVar13 = (byte *)".dtors.";
    pbVar14 = param_4;
    do {
      if (lVar11 == 0) break;
      lVar11 = lVar11 + -1;
      bVar17 = *pbVar13 < *pbVar14;
      bVar16 = *pbVar13 == *pbVar14;
      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
    } while (bVar16);
    bVar19 = false;
    bVar16 = (!bVar17 && !bVar16) == bVar17;
    if (bVar16) goto LAB_001bb830;
    lVar11 = 0xc;
    pbVar13 = (byte *)".init_array.";
    pbVar14 = param_4;
    do {
      if (lVar11 == 0) break;
      lVar11 = lVar11 + -1;
      bVar19 = *pbVar13 < *pbVar14;
      bVar16 = *pbVar13 == *pbVar14;
      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
    } while (bVar16);
    bVar17 = false;
    bVar16 = (!bVar19 && !bVar16) == bVar19;
    if (bVar16) goto LAB_001bb830;
    lVar11 = 0xc;
    pbVar13 = (byte *)".fini_array.";
    pbVar14 = param_4;
    do {
      if (lVar11 == 0) break;
      lVar11 = lVar11 + -1;
      bVar17 = *pbVar13 < *pbVar14;
      bVar16 = *pbVar13 == *pbVar14;
      pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
    } while (bVar16);
    if ((!bVar17 && !bVar16) == bVar17) goto LAB_001bb830;
    bVar16 = false;
    bVar19 = *(char *)(lVar1 + 0x1179) == '\0';
    if (!bVar19) {
      lVar11 = 7;
      pbVar13 = param_4;
      pbVar14 = (byte *)".ctors";
      do {
        if (lVar11 == 0) break;
        lVar11 = lVar11 + -1;
        bVar16 = *pbVar13 < *pbVar14;
        bVar19 = *pbVar13 == *pbVar14;
        pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
      } while (bVar19);
      bVar17 = false;
      bVar16 = (!bVar16 && !bVar19) == bVar16;
      if (!bVar16) {
        lVar11 = 7;
        pbVar13 = param_4;
        pbVar14 = (byte *)".dtors";
        do {
          if (lVar11 == 0) break;
          lVar11 = lVar11 + -1;
          bVar17 = *pbVar13 < *pbVar14;
          bVar16 = *pbVar13 == *pbVar14;
          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
        } while (bVar16);
        if ((!bVar17 && !bVar16) != bVar17) goto LAB_001bb970;
      }
      goto LAB_001bb830;
    }
LAB_001bb970:
    if (*(char *)(lVar1 + 0x62b9) != '\0') goto LAB_001bb854;
LAB_001bb97e:
    cVar4 = *(char *)(lVar1 + 0x5051);
LAB_001bb986:
    if (cVar4 == '\0') {
LAB_001bb98e:
      uVar9 = *(ulong *)(*param_5 + 0x20);
      uVar9 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 | (uVar9 & 0xff0000000000) >> 0x18
              | (uVar9 & 0xff00000000) >> 8 | (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18
              | (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;
      bVar16 = uVar9 < 8;
      bVar19 = uVar9 == 8;
      if (8 < uVar9) {
        lVar12 = 7;
        pbVar13 = param_4;
        pbVar14 = (byte *)".ctors";
        do {
          if (lVar12 == 0) break;
          lVar12 = lVar12 + -1;
          bVar16 = *pbVar13 < *pbVar14;
          bVar19 = *pbVar13 == *pbVar14;
          pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
        } while (bVar19);
        bVar17 = false;
        bVar16 = (!bVar16 && !bVar19) == bVar16;
        if (bVar16) {
LAB_001bb9d7:
          bVar19 = false;
          lVar12 = 0xc;
          pbVar13 = *(byte **)(lVar10 + 0x28);
          pbVar14 = (byte *)".init_array";
          do {
            if (lVar12 == 0) break;
            lVar12 = lVar12 + -1;
            bVar19 = *pbVar13 < *pbVar14;
            bVar16 = *pbVar13 == *pbVar14;
            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
          } while (bVar16);
          bVar16 = (!bVar19 && !bVar16) == bVar19;
          if (!bVar16) goto LAB_001bba30;
        }
        else {
          lVar12 = 7;
          pbVar13 = (byte *)".ctors.";
          pbVar14 = param_4;
          do {
            if (lVar12 == 0) break;
            lVar12 = lVar12 + -1;
            bVar17 = *pbVar13 < *pbVar14;
            bVar16 = *pbVar13 == *pbVar14;
            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
          } while (bVar16);
          bVar16 = (!bVar17 && !bVar16) == bVar17;
          if (bVar16) goto LAB_001bb9d7;
LAB_001bba30:
          bVar19 = false;
          lVar12 = 7;
          pbVar13 = param_4;
          pbVar14 = (byte *)".dtors";
          do {
            if (lVar12 == 0) break;
            lVar12 = lVar12 + -1;
            bVar19 = *pbVar13 < *pbVar14;
            bVar16 = *pbVar13 == *pbVar14;
            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
          } while (bVar16);
          bVar17 = false;
          bVar16 = (!bVar19 && !bVar16) == bVar19;
          if (!bVar16) {
            lVar12 = 7;
            pbVar13 = (byte *)".dtors.";
            pbVar14 = param_4;
            do {
              if (lVar12 == 0) break;
              lVar12 = lVar12 + -1;
              bVar17 = *pbVar13 < *pbVar14;
              bVar16 = *pbVar13 == *pbVar14;
              pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
              pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
            } while (bVar16);
            bVar16 = (!bVar17 && !bVar16) == bVar17;
            if (!bVar16) goto LAB_001bb878;
          }
          bVar19 = false;
          lVar12 = 0xc;
          pbVar13 = *(byte **)(lVar10 + 0x28);
          pbVar14 = (byte *)".fini_array";
          do {
            if (lVar12 == 0) break;
            lVar12 = lVar12 + -1;
            bVar19 = *pbVar13 < *pbVar14;
            bVar16 = *pbVar13 == *pbVar14;
            pbVar13 = pbVar13 + (ulong)bVar20 * -2 + 1;
            pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
          } while (bVar16);
          if ((!bVar19 && !bVar16) != bVar19) goto LAB_001bb878;
        }
        local_60 = &DAT_0043e980;
        local_58 = param_2;
        local_50 = param_3;
        FUN_001ba100(&DAT_0043e980,&local_58,&local_60,1);
        cVar4 = *(char *)(*(long *)(param_1 + 8) + 0x148);
        goto LAB_001bb87a;
      }
    }
  }
LAB_001bb878:
  cVar4 = '\0';
LAB_001bb87a:
  uVar9 = *(ulong *)(lVar10 + 0x70);
  uVar8 = FUN_00228100(lVar10,param_1,param_2,param_3,param_4,param_5,param_7,cVar4);
  *param_9 = uVar8;
  if (((uVar9 & 2) != 0) && (((uint)uVar9 & 5) != ((uint)*(undefined8 *)(lVar10 + 0x70) & 5))) {
    uVar5 = FUN_001a5050(param_1,lVar10,0);
    *(undefined4 *)(lVar10 + 0x78) = uVar5;
  }
  *(undefined1 *)(param_1 + 0x368) = 1;
  return lVar10;
}

