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

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

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  bool bVar8;
  char cVar9;
  char *pcVar10;
  Output_section *pOVar11;
  General_options *pGVar12;
  Output_section_order OVar13;
  uint uVar14;
  size_t sVar15;
  byte bVar16;
  int iVar17;
  Parameters **ppPVar18;
  General_options *pGVar19;
  Parameters ***pppPVar20;
  Parameters ***pppPVar21;
  byte *pbVar22;
  __hashtable_alloc *p_Var23;
  undefined1 *puVar24;
  byte *pbVar25;
  __node_gen_type _Var26;
  bool bVar27;
  undefined1 uVar28;
  bool bVar29;
  undefined1 uVar30;
  byte bVar31;
  off_t oVar32;
  Layout *unaff_retaddr;
  Parameters **local_5c;
  Parameters **local_58;
  __node_gen_type __node_gen;
  Key name_key;
  __hashtable_alloc local_30 [28];
  undefined4 uStack_14;
  
  bVar31 = 0;
  uStack_14 = 0xaec39;
  *(undefined4 *)off = 0;
  *(undefined4 *)((int)off + 4) = 0;
  bVar8 = include_section<32,_true>(this,object,name,shdr);
  pppPVar20 = &local_5c;
  if (!bVar8) {
    return (Output_section *)0x0;
  }
  pGVar12 = parameters->options_;
  pppPVar21 = &local_5c;
  if (pGVar12 == (General_options *)0x0) goto LAB_000af218;
  if ((pGVar12->relocatable_).value == false) {
LAB_000aeca9:
    ppPVar18 = &parameters;
    if ((pGVar12->text_unlikely_segment_).value != false) {
      uVar28 = &local_5c < (undefined1 *)0x4;
      uVar30 = &stack0x00000000 == (undefined1 *)0x60;
      local_58 = &parameters;
      (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])
                (&name_key,object,shndx);
      iVar17 = 0xe;
      local_58 = (Parameters **)0x28a53f;
      p_Var23 = (__hashtable_alloc *)".text.unlikely";
      _Var26 = __node_gen;
      do {
        if (iVar17 == 0) break;
        iVar17 = iVar17 + -1;
        uVar28 = (byte)*p_Var23 < (byte)*_Var26._M_h;
        uVar30 = *p_Var23 == *_Var26._M_h;
        p_Var23 = p_Var23 + (uint)bVar31 * -2 + 1;
        _Var26._M_h = _Var26._M_h + (uint)bVar31 * -2 + 1;
      } while ((bool)uVar30);
      pppPVar20 = (Parameters ***)&stack0xffffffa0;
      if ((!(bool)uVar28 && !(bool)uVar30) == (bool)uVar28) {
        if (__node_gen._M_h != local_30) {
          operator_delete(__node_gen._M_h);
        }
        pppPVar20 = (Parameters ***)&stack0xffffffa0;
        uVar14 = *(uint *)(*(int *)name + 8);
        uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;
        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000af2db;
        uVar6 = uVar5 & 0xfffff50f;
        if (((*local_5c)->options_->relocatable_).value != false) {
          uVar6 = uVar5 & 0xfffff58f;
        }
        pcVar10 = Stringpool_template<char>::add
                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);
        pOVar11 = get_output_section(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,
                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),
                                     ORDER_INVALID,false);
        pppPVar20 = (Parameters ***)&stack0xffffffa0;
        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;
        goto LAB_000aedb0;
      }
      ppPVar18 = local_5c;
      if (__node_gen._M_h != local_30) {
        operator_delete(__node_gen._M_h);
        pppPVar20 = (Parameters ***)&stack0xffffffa0;
        ppPVar18 = local_5c;
      }
    }
    *(Parameters ***)((int)pppPVar20 + 4) = ppPVar18;
    *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);
    *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);
    *(Key **)((int)pppPVar20 + -8) = &name_key;
    *(int *)((int)pppPVar20 + -0xc) = *(int *)((int)pppPVar20 + 0x60) + 0x204;
    *(undefined1 **)((int)pppPVar20 + -0x10) = (undefined1 *)((int)pppPVar20 + 0x1c);
    *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaece7;
    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*>_>_>
             **)((int)pppPVar20 + -0x10),
           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar20 + -0xc));
    iVar17 = *(int *)((int)pppPVar20 + 0x1c);
    uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 8);
    uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;
    uVar6 = (uVar14 & 0xff00) << 8;
    if (iVar17 == *(int *)((int)pppPVar20 + 0x60) + 0x208) {
      *(undefined4 *)((int)pppPVar20 + -8) = 1;
      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;
      *(undefined4 *)((int)pppPVar20 + -0x10) = 0;
      *(undefined4 *)((int)pppPVar20 + -0x14) = 0;
      *(undefined4 *)((int)pppPVar20 + -0x18) = 1;
      *(undefined4 *)((int)pppPVar20 + -0x1c) = 0;
      *(uint *)((int)pppPVar20 + -0x20) = uVar5 | uVar6 | uVar14 << 0x18;
      *(undefined4 *)((int)pppPVar20 + -0x24) = *(undefined4 *)((int)pppPVar20 + 0x74);
      *(undefined4 *)((int)pppPVar20 + -0x28) = *(undefined4 *)((int)pppPVar20 + 0x6c);
      *(undefined4 *)((int)pppPVar20 + -0x2c) = *(undefined4 *)((int)pppPVar20 + 100);
      *(undefined4 *)((int)pppPVar20 + -0x30) = *(undefined4 *)((int)pppPVar20 + 0x60);
      *(undefined4 *)((int)pppPVar20 + -0x34) = 0xaf062;
      pOVar11 = choose_output_section
                          (*(Layout **)((int)pppPVar20 + -0x30),*(Relobj **)((int)pppPVar20 + -0x2c)
                           ,*(char **)((int)pppPVar20 + -0x28),*(Elf_Word *)((int)pppPVar20 + -0x24)
                           ,*(Elf_Xword *)((int)pppPVar20 + -0x20),*(bool *)((int)pppPVar20 + -0x18)
                           ,*(Output_section_order *)((int)pppPVar20 + -0x14),
                           *(bool *)((int)pppPVar20 + -0x10),*(bool *)((int)pppPVar20 + -0xc),
                           *(bool *)((int)pppPVar20 + -8));
      local_5c = *(Parameters ***)((int)pppPVar20 + 4);
      if (pOVar11 == (Output_section *)0x0) {
        return (Output_section *)0x0;
      }
    }
    else {
      iVar1 = *(int *)(**(int **)((int)pppPVar20 + 4) + 8);
      if (iVar1 == 0) {
LAB_000af2db:
                    /* WARNING: Subroutine does not return */
        pppPVar20[-1] = (Parameters **)layout<64,_false>;
        Target::abi_pagesize((Target *)*pppPVar20);
      }
      uVar7 = uVar5 & 0xfffff50f;
      if (*(char *)(iVar1 + 0x318d) != '\0') {
        uVar7 = uVar5 & 0xfffff58f;
      }
      puVar2 = *(undefined4 **)(iVar17 + 0x18);
      *(int **)((int)pppPVar20 + 4) = *(int **)((int)pppPVar20 + 4);
      *(Key **)((int)pppPVar20 + -4) = &name_key;
      *(undefined4 *)((int)pppPVar20 + -8) = 1;
      *(undefined4 *)((int)pppPVar20 + -0xc) = *puVar2;
      *(int *)((int)pppPVar20 + -0x10) = *(int *)((int)pppPVar20 + 0x60) + 8;
      *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaed4e;
      pcVar10 = Stringpool_template<char>::add
                          (*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),
                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),
                           *(Key **)((int)pppPVar20 + -4));
      *(undefined4 *)((int)pppPVar20 + -4) = 0;
      *(undefined4 *)((int)pppPVar20 + -8) = 0;
      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;
      *(uint *)((int)pppPVar20 + -0x10) = uVar7 | uVar6 | uVar14 << 0x18;
      *(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x74);
      *(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 0x28);
      *(char **)((int)pppPVar20 + -0x1c) = pcVar10;
      *(undefined4 *)((int)pppPVar20 + -0x20) = *(undefined4 *)((int)pppPVar20 + 0x60);
      *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaed6c;
      pOVar11 = get_output_section(*(Layout **)((int)pppPVar20 + -0x20),
                                   *(char **)((int)pppPVar20 + -0x1c),
                                   *(Key *)((int)pppPVar20 + -0x18),
                                   *(Elf_Word *)((int)pppPVar20 + -0x14),
                                   *(Elf_Xword *)((int)pppPVar20 + -0x10),
                                   *(Output_section_order *)((int)pppPVar20 + -8),
                                   *(bool *)((int)pppPVar20 + -4));
      local_5c = *(Parameters ***)((int)pppPVar20 + 4);
      if (-1 < (char)pOVar11->field_0x92) {
        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;
        iVar17 = *(int *)(iVar17 + 0x18);
        uVar3 = *(undefined4 *)(iVar17 + 8);
        *(undefined4 *)&pOVar11->extra_segment_flags_ = *(undefined4 *)(iVar17 + 4);
        uVar4 = *(undefined4 *)(iVar17 + 0xc);
        *(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4) = uVar3;
        uVar3 = *(undefined4 *)(iVar17 + 0x10);
        *(undefined4 *)&pOVar11->segment_alignment_ = uVar4;
        *(undefined4 *)((int)&pOVar11->segment_alignment_ + 4) = uVar3;
      }
    }
  }
  else {
    uVar14 = shdr->p_->sh_flags;
    uVar5 = (uVar14 & 0xff0000) >> 8;
    if ((uVar5 & 0x200) == 0) goto LAB_000aeca9;
    local_58 = &parameters;
    pcVar10 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);
    pOVar11 = make_output_section(this,pcVar10,sh_type,
                                  (ulonglong)
                                  (uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |
                                  uVar14 << 0x18),ORDER_INVALID,false);
    pppPVar20 = &local_5c;
    local_5c = local_58;
  }
LAB_000aedb0:
  iVar17 = *(int *)(*(int *)((int)pppPVar20 + 0x60) + 4);
  pGVar19 = (*local_5c)->options_;
  *(int *)((int)pppPVar20 + 4) = iVar17;
  bVar16 = *(byte *)(iVar17 + 0xac);
  pGVar12 = (General_options *)(uint)bVar16;
  pppPVar21 = pppPVar20;
  if (bVar16 != 0) {
    if (pGVar19 == (General_options *)0x0) goto LAB_000af218;
    goto LAB_000aeee2;
  }
  if (pGVar19 == (General_options *)0x0) {
LAB_000af218:
    *(General_options **)((int)pppPVar21 + -4) = pGVar12;
    *(char **)((int)pppPVar21 + -8) = "options";
    *(undefined4 *)((int)pppPVar21 + -0xc) = 0x5c;
    *(char **)((int)pppPVar21 + -0x10) = "../../gold/parameters.h";
                    /* WARNING: Subroutine does not return */
    *(undefined **)((int)pppPVar21 + -0x14) = &UNK_000af22e;
    do_gold_unreachable(*(char **)((int)pppPVar21 + -0x10),*(int *)((int)pppPVar21 + -0xc),
                        *(char **)((int)pppPVar21 + -8));
  }
  bVar8 = false;
  bVar29 = (pGVar19->relocatable_).value == false;
  if (!bVar29) goto LAB_000af100;
  iVar17 = 7;
  pbVar22 = (byte *)".ctors.";
  pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);
  do {
    if (iVar17 == 0) break;
    iVar17 = iVar17 + -1;
    bVar8 = *pbVar22 < *pbVar25;
    bVar29 = *pbVar22 == *pbVar25;
    pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;
    pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;
  } while (bVar29);
  bVar27 = false;
  bVar8 = (!bVar8 && !bVar29) == bVar8;
  if (bVar8) {
LAB_000aee98:
    pOVar11->field_0x91 = pOVar11->field_0x91 | 8;
    bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);
    pGVar12 = (General_options *)(uint)bVar16;
    if ((pGVar19->text_reorder_).value == false) {
LAB_000af249:
      if (bVar16 != 0) goto LAB_000aeee2;
      goto LAB_000af10d;
    }
    if (bVar16 != 0) goto LAB_000aeee2;
LAB_000aeebd:
    cVar9 = (pGVar19->relocatable_).value;
    if (*(char *)(*(int *)((int)pppPVar20 + 0x60) + 0x1cd) != '\0') goto LAB_000af114;
    if ((bool)cVar9 == false) {
      *(General_options **)((int)pppPVar20 + 0xc) = pGVar19;
      puVar24 = special_ordering_of_input_section(char_const*)::text_section_sort;
      *(char ***)((int)pppPVar20 + 8) = gdb_fast_lookup_sections;
      pcVar10 = ".text.unlikely";
      sVar15 = 0xe;
      while( true ) {
        *(size_t *)((int)pppPVar20 + -8) = sVar15;
        *(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x6c);
        *(char **)((int)pppPVar20 + -0x10) = pcVar10;
        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf28d;
        iVar17 = strncmp(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),
                         *(size_t *)((int)pppPVar20 + -8));
        if (iVar17 == 0) break;
        puVar24 = (undefined1 *)((int)puVar24 + 4);
        if (*(undefined4 **)((int)pppPVar20 + 8) == (undefined4 *)puVar24) goto LAB_000af11c;
        pcVar10 = *(char **)puVar24;
        *(char **)((int)pppPVar20 + -0x10) = pcVar10;
        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf2ac;
        sVar15 = strlen(*(char **)((int)pppPVar20 + -0x10));
      }
      pGVar19 = *(General_options **)((int)pppPVar20 + 0xc);
      pOVar11->field_0x91 = pOVar11->field_0x91 | 8;
      bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);
      pGVar12 = (General_options *)(uint)bVar16;
      goto LAB_000af249;
    }
  }
  else {
    iVar17 = 7;
    pbVar22 = (byte *)".dtors.";
    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);
    do {
      if (iVar17 == 0) break;
      iVar17 = iVar17 + -1;
      bVar27 = *pbVar22 < *pbVar25;
      bVar8 = *pbVar22 == *pbVar25;
      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;
      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;
    } while (bVar8);
    bVar29 = false;
    bVar8 = (!bVar27 && !bVar8) == bVar27;
    if (bVar8) goto LAB_000aee98;
    iVar17 = 0xc;
    pbVar22 = (byte *)".init_array.";
    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);
    do {
      if (iVar17 == 0) break;
      iVar17 = iVar17 + -1;
      bVar29 = *pbVar22 < *pbVar25;
      bVar8 = *pbVar22 == *pbVar25;
      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;
      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;
    } while (bVar8);
    bVar27 = false;
    bVar8 = (!bVar29 && !bVar8) == bVar29;
    if (bVar8) goto LAB_000aee98;
    iVar17 = 0xc;
    pbVar22 = (byte *)".fini_array.";
    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);
    do {
      if (iVar17 == 0) break;
      iVar17 = iVar17 + -1;
      bVar27 = *pbVar22 < *pbVar25;
      bVar8 = *pbVar22 == *pbVar25;
      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;
      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;
    } while (bVar8);
    if ((!bVar27 && !bVar8) == bVar27) goto LAB_000aee98;
    bVar8 = false;
    bVar29 = (pGVar19->ctors_in_init_array_).value == false;
    if (!bVar29) {
      iVar17 = 7;
      pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);
      pbVar25 = (byte *)".ctors";
      do {
        if (iVar17 == 0) break;
        iVar17 = iVar17 + -1;
        bVar8 = *pbVar22 < *pbVar25;
        bVar29 = *pbVar22 == *pbVar25;
        pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;
        pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;
      } while (bVar29);
      bVar27 = false;
      bVar8 = (!bVar8 && !bVar29) == bVar8;
      if (!bVar8) {
        iVar17 = 7;
        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);
        pbVar25 = (byte *)".dtors";
        do {
          if (iVar17 == 0) break;
          iVar17 = iVar17 + -1;
          bVar27 = *pbVar22 < *pbVar25;
          bVar8 = *pbVar22 == *pbVar25;
          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;
          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;
        } while (bVar8);
        if ((!bVar27 && !bVar8) != bVar27) goto LAB_000af100;
      }
      goto LAB_000aee98;
    }
LAB_000af100:
    if ((pGVar19->text_reorder_).value != false) goto LAB_000aeebd;
LAB_000af10d:
    cVar9 = (pGVar19->relocatable_).value;
LAB_000af114:
    if (cVar9 == '\0') {
LAB_000af11c:
      uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14);
      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;
      bVar8 = uVar14 < 4;
      bVar29 = uVar14 == 4;
      if (4 < uVar14) {
        iVar17 = 7;
        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);
        pbVar25 = (byte *)".ctors";
        do {
          if (iVar17 == 0) break;
          iVar17 = iVar17 + -1;
          bVar8 = *pbVar22 < *pbVar25;
          bVar29 = *pbVar22 == *pbVar25;
          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;
          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;
        } while (bVar29);
        bVar27 = false;
        bVar8 = (!bVar8 && !bVar29) == bVar8;
        if (bVar8) {
LAB_000af164:
          bVar29 = false;
          iVar17 = 0xc;
          pbVar22 = (byte *)pOVar11->name_;
          pbVar25 = (byte *)".init_array";
          do {
            if (iVar17 == 0) break;
            iVar17 = iVar17 + -1;
            bVar29 = *pbVar22 < *pbVar25;
            bVar8 = *pbVar22 == *pbVar25;
            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;
            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;
          } while (bVar8);
          bVar8 = (!bVar29 && !bVar8) == bVar29;
          if (!bVar8) goto LAB_000af1d0;
        }
        else {
          iVar17 = 7;
          pbVar22 = (byte *)".ctors.";
          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);
          do {
            if (iVar17 == 0) break;
            iVar17 = iVar17 + -1;
            bVar27 = *pbVar22 < *pbVar25;
            bVar8 = *pbVar22 == *pbVar25;
            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;
            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;
          } while (bVar8);
          bVar8 = (!bVar27 && !bVar8) == bVar27;
          if (bVar8) goto LAB_000af164;
LAB_000af1d0:
          bVar29 = false;
          iVar17 = 7;
          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);
          pbVar25 = (byte *)".dtors";
          do {
            if (iVar17 == 0) break;
            iVar17 = iVar17 + -1;
            bVar29 = *pbVar22 < *pbVar25;
            bVar8 = *pbVar22 == *pbVar25;
            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;
            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;
          } while (bVar8);
          bVar27 = false;
          bVar8 = (!bVar29 && !bVar8) == bVar29;
          if (!bVar8) {
            iVar17 = 7;
            pbVar22 = (byte *)".dtors.";
            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);
            do {
              if (iVar17 == 0) break;
              iVar17 = iVar17 + -1;
              bVar27 = *pbVar22 < *pbVar25;
              bVar8 = *pbVar22 == *pbVar25;
              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;
              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;
            } while (bVar8);
            bVar8 = (!bVar27 && !bVar8) == bVar27;
            if (!bVar8) goto LAB_000aeee0;
          }
          bVar29 = false;
          iVar17 = 0xc;
          pbVar22 = (byte *)pOVar11->name_;
          pbVar25 = (byte *)".fini_array";
          do {
            if (iVar17 == 0) break;
            iVar17 = iVar17 + -1;
            bVar29 = *pbVar22 < *pbVar25;
            bVar8 = *pbVar22 == *pbVar25;
            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;
            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;
          } while (bVar8);
          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;
        }
        *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);
        *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);
        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;
        *(undefined4 *)((int)pppPVar20 + -0xc) = 1;
        *(undefined4 *)((int)pppPVar20 + -0x10) = 0;
        *(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24);
        *(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28);
        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>
          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;
        *(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10);
        *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3;
        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>_>_>_>
                  ();
        pGVar12 = (General_options *)
                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);
        goto LAB_000aeee2;
      }
    }
  }
LAB_000aeee0:
  pGVar12 = (General_options *)0x0;
LAB_000aeee2:
  uVar14 = (uint)pOVar11->flags_;
  *(General_options **)((int)pppPVar20 + -4) = pGVar12;
  *(undefined4 *)((int)pppPVar20 + -8) = *(undefined4 *)((int)pppPVar20 + 0x78);
  *(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x70);
  *(undefined4 *)((int)pppPVar20 + -0x10) = *(undefined4 *)((int)pppPVar20 + 0x6c);
  *(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x68);
  *(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 100);
  *(undefined4 *)((int)pppPVar20 + -0x1c) = *(undefined4 *)((int)pppPVar20 + 0x60);
  *(Output_section **)((int)pppPVar20 + -0x20) = pOVar11;
  *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaef04;
  oVar32 = Output_section::add_input_section<32,_true>
                     (*(Output_section **)((int)pppPVar20 + -0x20),
                      *(Layout **)((int)pppPVar20 + -0x1c),
                      *(Sized_relobj_file<32,_true> **)((int)pppPVar20 + -0x18),
                      *(uint *)((int)pppPVar20 + -0x14),*(char **)((int)pppPVar20 + -0x10),
                      *(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),
                      *(bool *)((int)pppPVar20 + -4));
  **(off_t **)((int)pppPVar20 + 0x80) = oVar32;
  if (((uVar14 & 2) != 0) && (((uVar14 ^ (uint)pOVar11->flags_) & 5) != 0)) {
    *(undefined4 *)((int)pppPVar20 + -8) = 0;
    *(Output_section **)((int)pppPVar20 + -0xc) = pOVar11;
    *(undefined4 *)((int)pppPVar20 + -0x10) = *(undefined4 *)((int)pppPVar20 + 0x60);
    *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaef32;
    OVar13 = default_section_order
                       (*(Layout **)((int)pppPVar20 + -0x10),
                        *(Output_section **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8));
    pOVar11->order_ = OVar13;
  }
  *(undefined1 *)(*(int *)((int)pppPVar20 + 0x60) + 0x1c4) = 1;
  return pOVar11;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

int FUN_000aec30(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,
                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)

{
  uint uVar1;
  undefined4 *puVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  char cVar6;
  undefined4 uVar7;
  int iVar8;
  uint uVar9;
  size_t sVar10;
  byte bVar11;
  int iVar12;
  int *piVar13;
  int *piVar14;
  int **ppiVar15;
  int **ppiVar16;
  int **ppiVar17;
  byte *pbVar18;
  undefined **ppuVar19;
  byte *pbVar20;
  char *pcVar21;
  bool bVar22;
  bool bVar23;
  undefined1 uVar24;
  bool bVar25;
  undefined1 uVar26;
  byte bVar27;
  undefined8 uVar28;
  int unaff_retaddr;
  int *apiStackY_8c [3];
  int *apiStack_60 [8];
  int *local_40 [3];
  undefined1 local_34 [4];
  byte local_30 [28];
  undefined4 uStack_14;
  
  bVar27 = 0;
  uStack_14 = 0xaec39;
  *param_9 = 0;
  param_9[1] = 0;
  apiStack_60[0] = param_5;
  cVar6 = FUN_000a77e0(param_1,param_2,param_4);
  ppiVar16 = apiStack_60 + 1;
  ppiVar15 = apiStack_60 + 1;
  if (cVar6 == '\0') {
    return 0;
  }
  uVar9 = *(uint *)(DAT_0038f378 + 8);
  if (uVar9 == 0) goto LAB_000af218;
  if (*(char *)(uVar9 + 0x318d) == '\0') {
LAB_000aeca9:
    piVar13 = &DAT_0038f378;
    if (*(char *)(uVar9 + 0x5871) != '\0') {
      uVar24 = apiStack_60 + 1 < (int **)0x4;
      uVar26 = &stack0x00000000 == (undefined1 *)0x60;
      apiStack_60[2] = &DAT_0038f378;
      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);
      iVar8 = 0xe;
      apiStack_60[2] = (int *)0x28a53f;
      pbVar18 = (byte *)".text.unlikely";
      pbVar20 = (byte *)local_40[2];
      do {
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        uVar24 = *pbVar18 < *pbVar20;
        uVar26 = *pbVar18 == *pbVar20;
        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
      } while ((bool)uVar26);
      ppiVar15 = apiStack_60;
      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {
        if ((byte *)local_40[2] != local_30) {
          FUN_001e6db0(local_40[2]);
        }
        ppiVar17 = apiStack_60;
        uVar9 = *(uint *)(*param_4 + 8);
        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;
        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;
        uVar4 = uVar1 & 0xfffff50f;
        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {
          uVar4 = uVar1 & 0xfffff58f;
        }
        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);
        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,
                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);
        ppiVar16 = apiStack_60;
        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;
        goto LAB_000aedb0;
      }
      piVar13 = apiStack_60[1];
      if ((byte *)local_40[2] != local_30) {
        FUN_001e6db0(local_40[2]);
        ppiVar15 = apiStack_60;
        piVar13 = apiStack_60[1];
      }
    }
    ppiVar15[1] = piVar13;
    ppiVar15[10] = ppiVar15[0x19];
    ppiVar15[0xb] = ppiVar15[0x1a];
    ppiVar15[-2] = (int *)local_34;
    ppiVar15[-3] = ppiVar15[0x18] + 0x81;
    ppiVar15[-4] = (int *)(ppiVar15 + 7);
    ppiVar15[-5] = (int *)0xaece7;
    FUN_000a9000();
    piVar13 = ppiVar15[6];
    ppiVar17 = ppiVar15 + -1;
    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);
    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;
    uVar4 = (uVar9 & 0xff00) << 8;
    if (piVar13 == ppiVar15[0x17] + 0x82) {
      ppiVar15[-3] = (int *)0x1;
      ppiVar15[-4] = (int *)0x0;
      ppiVar15[-5] = (int *)0x0;
      ppiVar15[-6] = (int *)0x0;
      ppiVar15[-7] = (int *)0x1;
      ppiVar15[-8] = (int *)0x0;
      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);
      ppiVar15[-10] = ppiVar15[0x1c];
      ppiVar15[-0xb] = ppiVar15[0x1a];
      ppiVar15[-0xc] = ppiVar15[0x18];
      ppiVar15[-0xd] = ppiVar15[0x17];
      ppiVar15[-0xe] = (int *)0xaf062;
      iVar8 = FUN_0009fff0();
      ppiVar16 = ppiVar15 + -1;
      apiStack_60[1] = *ppiVar15;
      if (iVar8 == 0) {
        return 0;
      }
    }
    else {
      iVar8 = *(int *)(**ppiVar15 + 8);
      if (iVar8 == 0) {
LAB_000af2db:
                    /* WARNING: Subroutine does not return */
        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;
        FUN_00096010();
      }
      uVar5 = uVar1 & 0xfffff50f;
      if (*(char *)(iVar8 + 0x318d) != '\0') {
        uVar5 = uVar1 & 0xfffff58f;
      }
      puVar2 = (undefined4 *)piVar13[6];
      *ppiVar15 = *ppiVar15;
      ppiVar15[-2] = (int *)local_34;
      ppiVar15[-3] = (int *)0x1;
      ppiVar15[-4] = (int *)*puVar2;
      ppiVar15[-5] = ppiVar15[0x17] + 2;
      ppiVar15[-6] = (int *)0xaed4e;
      uVar7 = FUN_00174930();
      ppiVar15[-2] = (int *)0x0;
      ppiVar15[-3] = (int *)0x0;
      ppiVar15[-4] = (int *)0x0;
      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);
      ppiVar15[-6] = ppiVar15[0x1c];
      ppiVar15[-7] = ppiVar15[9];
      ppiVar15[-8] = (int *)uVar7;
      ppiVar15[-9] = ppiVar15[0x17];
      ppiVar15[-10] = (int *)0xaed6c;
      iVar8 = FUN_0009fd60();
      apiStack_60[1] = *ppiVar15;
      ppiVar16 = ppiVar15 + -1;
      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {
        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;
        iVar12 = piVar13[6];
        uVar7 = *(undefined4 *)(iVar12 + 8);
        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);
        uVar3 = *(undefined4 *)(iVar12 + 0xc);
        *(undefined4 *)(iVar8 + 0xa0) = uVar7;
        uVar7 = *(undefined4 *)(iVar12 + 0x10);
        *(undefined4 *)(iVar8 + 0xa4) = uVar3;
        *(undefined4 *)(iVar8 + 0xa8) = uVar7;
        ppiVar16 = ppiVar15 + -1;
      }
    }
  }
  else {
    uVar1 = *(uint *)(*param_5 + 8);
    uVar4 = (uVar1 & 0xff0000) >> 8;
    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;
    apiStack_60[0] = (int *)0x0;
    apiStack_60[2] = &DAT_0038f378;
    uVar7 = FUN_00174930(param_1 + 8,param_4,1);
    iVar8 = FUN_0009b860(param_1,uVar7,param_6,
                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,
                         0,0,0);
    ppiVar16 = apiStack_60 + 1;
    apiStack_60[1] = apiStack_60[2];
  }
LAB_000aedb0:
  piVar13 = (int *)ppiVar16[0x18][1];
  piVar14 = *(int **)(*apiStack_60[1] + 8);
  ppiVar16[1] = piVar13;
  bVar11 = *(byte *)(piVar13 + 0x2b);
  uVar9 = (uint)bVar11;
  if (bVar11 != 0) {
    if (piVar14 == (int *)0x0) goto LAB_000af218;
    goto LAB_000aeee2;
  }
  if (piVar14 == (int *)0x0) {
LAB_000af218:
    ppiVar16[0xffffffff] = (int *)uVar9;
    ppiVar16[0xfffffffe] = (int *)"options";
    ppiVar16[0xfffffffd] = (int *)0x5c;
    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";
                    /* WARNING: Subroutine does not return */
    ppiVar16[0xfffffffb] = (int *)0xaf22e;
    FUN_00069d00();
  }
  bVar22 = false;
  bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';
  if (!bVar25) goto LAB_000af100;
  iVar12 = 7;
  pbVar18 = (byte *)".ctors.";
  pbVar20 = (byte *)ppiVar16[0x1b];
  do {
    if (iVar12 == 0) break;
    iVar12 = iVar12 + -1;
    bVar22 = *pbVar18 < *pbVar20;
    bVar25 = *pbVar18 == *pbVar20;
    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
  } while (bVar25);
  bVar23 = false;
  bVar22 = (!bVar22 && !bVar25) == bVar22;
  if (bVar22) {
LAB_000aee98:
    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;
    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);
    uVar9 = (uint)bVar11;
    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {
LAB_000af249:
      if (bVar11 != 0) goto LAB_000aeee2;
      goto LAB_000af10d;
    }
    if (bVar11 != 0) goto LAB_000aeee2;
LAB_000aeebd:
    cVar6 = *(char *)((int)piVar14 + 0x318d);
    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;
    if (cVar6 == '\0') {
      ppiVar16[3] = piVar14;
      ppuVar19 = &PTR_s__text_unlikely_003837a0;
      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;
      pcVar21 = ".text.unlikely";
      sVar10 = 0xe;
      while( true ) {
        ppiVar16[0xfffffffe] = (int *)sVar10;
        ppiVar16[0xfffffffd] = ppiVar16[0x1b];
        ppiVar16[0xfffffffc] = (int *)pcVar21;
        ppiVar16[0xfffffffb] = (int *)0xaf28d;
        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],
                         (size_t)ppiVar16[0xfffffffe]);
        if (iVar12 == 0) break;
        ppuVar19 = ppuVar19 + 1;
        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;
        pcVar21 = *ppuVar19;
        ppiVar16[0xfffffffc] = (int *)pcVar21;
        ppiVar16[0xfffffffb] = (int *)0xaf2ac;
        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);
      }
      piVar14 = ppiVar16[3];
      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;
      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);
      uVar9 = (uint)bVar11;
      goto LAB_000af249;
    }
  }
  else {
    iVar12 = 7;
    pbVar18 = (byte *)".dtors.";
    pbVar20 = (byte *)ppiVar16[0x1b];
    do {
      if (iVar12 == 0) break;
      iVar12 = iVar12 + -1;
      bVar23 = *pbVar18 < *pbVar20;
      bVar22 = *pbVar18 == *pbVar20;
      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
    } while (bVar22);
    bVar25 = false;
    bVar22 = (!bVar23 && !bVar22) == bVar23;
    if (bVar22) goto LAB_000aee98;
    iVar12 = 0xc;
    pbVar18 = (byte *)".init_array.";
    pbVar20 = (byte *)ppiVar16[0x1b];
    do {
      if (iVar12 == 0) break;
      iVar12 = iVar12 + -1;
      bVar25 = *pbVar18 < *pbVar20;
      bVar22 = *pbVar18 == *pbVar20;
      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
    } while (bVar22);
    bVar23 = false;
    bVar22 = (!bVar25 && !bVar22) == bVar25;
    if (bVar22) goto LAB_000aee98;
    iVar12 = 0xc;
    pbVar18 = (byte *)".fini_array.";
    pbVar20 = (byte *)ppiVar16[0x1b];
    do {
      if (iVar12 == 0) break;
      iVar12 = iVar12 + -1;
      bVar23 = *pbVar18 < *pbVar20;
      bVar22 = *pbVar18 == *pbVar20;
      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
    } while (bVar22);
    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;
    bVar22 = false;
    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';
    if (!bVar25) {
      iVar12 = 7;
      pbVar18 = (byte *)ppiVar16[0x1b];
      pbVar20 = (byte *)".ctors";
      do {
        if (iVar12 == 0) break;
        iVar12 = iVar12 + -1;
        bVar22 = *pbVar18 < *pbVar20;
        bVar25 = *pbVar18 == *pbVar20;
        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
      } while (bVar25);
      bVar23 = false;
      bVar22 = (!bVar22 && !bVar25) == bVar22;
      if (!bVar22) {
        iVar12 = 7;
        pbVar18 = (byte *)ppiVar16[0x1b];
        pbVar20 = (byte *)".dtors";
        do {
          if (iVar12 == 0) break;
          iVar12 = iVar12 + -1;
          bVar23 = *pbVar18 < *pbVar20;
          bVar22 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
        } while (bVar22);
        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;
      }
      goto LAB_000aee98;
    }
LAB_000af100:
    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;
LAB_000af10d:
    cVar6 = *(char *)((int)piVar14 + 0x318d);
LAB_000af114:
    if (cVar6 == '\0') {
LAB_000af11c:
      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);
      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
      bVar22 = uVar9 < 4;
      bVar25 = uVar9 == 4;
      if (4 < uVar9) {
        iVar12 = 7;
        pbVar18 = (byte *)ppiVar16[0x1b];
        pbVar20 = (byte *)".ctors";
        do {
          if (iVar12 == 0) break;
          iVar12 = iVar12 + -1;
          bVar22 = *pbVar18 < *pbVar20;
          bVar25 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
        } while (bVar25);
        bVar23 = false;
        bVar22 = (!bVar22 && !bVar25) == bVar22;
        if (bVar22) {
LAB_000af164:
          bVar25 = false;
          iVar12 = 0xc;
          pbVar18 = *(byte **)(iVar8 + 0x20);
          pbVar20 = (byte *)".init_array";
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = *pbVar18 < *pbVar20;
            bVar22 = *pbVar18 == *pbVar20;
            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
          } while (bVar22);
          bVar22 = (!bVar25 && !bVar22) == bVar25;
          if (!bVar22) goto LAB_000af1d0;
        }
        else {
          iVar12 = 7;
          pbVar18 = (byte *)".ctors.";
          pbVar20 = (byte *)ppiVar16[0x1b];
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar23 = *pbVar18 < *pbVar20;
            bVar22 = *pbVar18 == *pbVar20;
            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
          } while (bVar22);
          bVar22 = (!bVar23 && !bVar22) == bVar23;
          if (bVar22) goto LAB_000af164;
LAB_000af1d0:
          bVar25 = false;
          iVar12 = 7;
          pbVar18 = (byte *)ppiVar16[0x1b];
          pbVar20 = (byte *)".dtors";
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = *pbVar18 < *pbVar20;
            bVar22 = *pbVar18 == *pbVar20;
            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
          } while (bVar22);
          bVar23 = false;
          bVar22 = (!bVar25 && !bVar22) == bVar25;
          if (!bVar22) {
            iVar12 = 7;
            pbVar18 = (byte *)".dtors.";
            pbVar20 = (byte *)ppiVar16[0x1b];
            do {
              if (iVar12 == 0) break;
              iVar12 = iVar12 + -1;
              bVar23 = *pbVar18 < *pbVar20;
              bVar22 = *pbVar18 == *pbVar20;
              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
            } while (bVar22);
            bVar22 = (!bVar23 && !bVar22) == bVar23;
            if (!bVar22) goto LAB_000aeee0;
          }
          bVar25 = false;
          iVar12 = 0xc;
          pbVar18 = *(byte **)(iVar8 + 0x20);
          pbVar20 = (byte *)".fini_array";
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = *pbVar18 < *pbVar20;
            bVar22 = *pbVar18 == *pbVar20;
            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
          } while (bVar22);
          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;
        }
        ppiVar16[10] = ppiVar16[0x19];
        ppiVar16[0xb] = ppiVar16[0x1a];
        ppiVar16[9] = &DAT_0038f4c4;
        ppiVar16[0xfffffffd] = (int *)0x1;
        ppiVar16[0xfffffffc] = (int *)0x0;
        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);
        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);
        ppiVar16[0xfffffff9] = &DAT_0038f4c4;
        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);
        ppiVar16[0xfffffff7] = (int *)0xaf1b3;
        FUN_000ae400();
        ppiVar15 = ppiVar16 + 0x17;
        ppiVar16 = ppiVar16 + 0xffffffff;
        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);
        goto LAB_000aeee2;
      }
    }
  }
LAB_000aeee0:
  uVar9 = 0;
LAB_000aeee2:
  uVar1 = *(uint *)(iVar8 + 0x54);
  *(uint *)((int)ppiVar16 + -4) = uVar9;
  *(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);
  *(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);
  *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);
  *(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);
  *(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);
  *(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);
  *(int *)((int)ppiVar16 + -0x20) = iVar8;
  *(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;
  uVar28 = FUN_00126020();
  **(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;
  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {
    *(undefined4 *)((int)ppiVar16 + -8) = 0;
    *(int *)((int)ppiVar16 + -0xc) = iVar8;
    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);
    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;
    uVar7 = FUN_00097200();
    *(undefined4 *)(iVar8 + 0x5c) = uVar7;
  }
  *(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;
  return iVar8;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x2e03c7
SUB ESP,0x4c
MOV EAX,dword ptr [ESP + 0x80]
MOV dword ptr [EAX],0x0
MOV dword ptr [EAX + 0x4],0x0
PUSH dword ptr [ESP + 0x70]
PUSH dword ptr [ESP + 0x70]
PUSH dword ptr [ESP + 0x6c]
PUSH dword ptr [ESP + 0x6c]
CALL 0x000a77e0
ADD ESP,0x10
TEST AL,AL
JZ 0x000af073
LEA EDX,[EBX + 0x378]
MOV EAX,dword ptr [EDX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000af218
CMP byte ptr [EAX + 0x318d],0x0
JZ 0x000aeca9
MOV EDI,dword ptr [ESP + 0x70]
MOV ECX,dword ptr [EDI]
MOV ESI,dword ptr [ECX + 0x8]
BSWAP ESI
TEST ESI,0x200
JNZ 0x000af0a8
CMP byte ptr [EAX + 0x5871],0x0
LEA EBP,[ESP + 0x28]
JNZ 0x000aef50
MOV EAX,dword ptr [ESP + 0x64]
MOV dword ptr [ESP + 0x4],EDX
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [ESP + 0x68]
MOV dword ptr [ESP + 0x2c],EAX
LEA EAX,[ESP + 0x1c]
SUB ESP,0x4
PUSH EBP
MOV EDI,dword ptr [ESP + 0x68]
LEA ECX,[EDI + 0x204]
PUSH ECX
PUSH EAX
CALL 0x000a9000
MOV EAX,dword ptr [ESP + 0x6c]
MOV ESI,dword ptr [ESP + 0x28]
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0x4]
ADD EAX,0x208
CMP ESI,EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
BSWAP EAX
JZ 0x000af030
MOV ECX,dword ptr [EDX]
MOV ECX,dword ptr [ECX + 0x8]
TEST ECX,ECX
JZ 0x000af2db
MOV EDI,EAX
AND EDI,0xfffff50f
CMP byte ptr [ECX + 0x318d],0x0
JZ 0x000aed33
AND EAX,0xfffff58f
MOV EDI,EAX
MOV EAX,dword ptr [ESI + 0x18]
MOV dword ptr [ESP + 0x4],EDX
PUSH EBP
XOR EBP,EBP
PUSH 0x1
PUSH dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x6c]
ADD EAX,0x8
PUSH EAX
CALL 0x00174930
ADD ESP,0x10
PUSH 0x0
PUSH 0x0
PUSH EBP
PUSH EDI
PUSH dword ptr [ESP + 0x84]
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
PUSH dword ptr [ESP + 0x7c]
CALL 0x0009fd60
ADD ESP,0x20
MOV EDX,dword ptr [ESP + 0x4]
MOV EBP,EAX
MOVZX EAX,byte ptr [EAX + 0x92]
TEST AL,AL
JS 0x000aedb0
OR EAX,0xffffff80
MOV byte ptr [EBP + 0x92],AL
MOV ECX,dword ptr [ESI + 0x18]
MOV ESI,dword ptr [ECX + 0x4]
MOV EDI,dword ptr [ECX + 0x8]
MOV dword ptr [EBP + 0x9c],ESI
MOV ESI,dword ptr [ECX + 0xc]
MOV dword ptr [EBP + 0xa0],EDI
MOV EDI,dword ptr [ECX + 0x10]
MOV dword ptr [EBP + 0xa4],ESI
MOV dword ptr [EBP + 0xa8],EDI
MOV EAX,dword ptr [ESP + 0x60]
MOV EDX,dword ptr [EDX]
MOV EAX,dword ptr [EAX + 0x4]
MOV EDX,dword ptr [EDX + 0x8]
MOV dword ptr [ESP + 0x4],EAX
MOVZX EAX,byte ptr [EAX + 0xac]
TEST AL,AL
JNZ 0x000af210
TEST EDX,EDX
JZ 0x000af218
CMP byte ptr [EDX + 0x318d],0x0
JNZ 0x000af100
MOV EDI,dword ptr [ESP + 0x6c]
MOV ECX,0x7
LEA ESI,[EBX + 0xffefb5cb]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x000aee98
MOV EDI,dword ptr [ESP + 0x6c]
MOV ECX,0x7
LEA ESI,[EBX + 0xffefb5d3]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x000aee98
MOV EDI,dword ptr [ESP + 0x6c]
MOV ECX,0xc
LEA ESI,[EBX + 0xffefc3a2]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x000aee98
MOV EDI,dword ptr [ESP + 0x6c]
MOV ECX,0xc
LEA ESI,[EBX + 0xffefc3af]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x000aee98
CMP byte ptr [EDX + 0xad5],0x0
JZ 0x000af100
MOV ESI,dword ptr [ESP + 0x6c]
MOV ECX,0x7
LEA EDI,[EBX + 0xffefb5a5]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x000aee98
MOV ESI,dword ptr [ESP + 0x6c]
MOV ECX,0x7
LEA EDI,[EBX + 0xffefb5c4]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000af100
LEA ESI,[ESI]
OR byte ptr [EBP + 0x91],0x8
MOV EAX,dword ptr [ESP + 0x4]
CMP byte ptr [EDX + 0x3ced],0x0
MOVZX EAX,byte ptr [EAX + 0xac]
MOV ECX,EAX
JZ 0x000af249
TEST AL,AL
JNZ 0x000aeee2
MOV EDI,dword ptr [ESP + 0x60]
MOVZX EAX,byte ptr [EDX + 0x318d]
CMP byte ptr [EDI + 0x1cd],0x0
JNZ 0x000af114
TEST AL,AL
JZ 0x000af260
LEA ESI,[ESI]
XOR EAX,EAX
MOV ESI,dword ptr [EBP + 0x54]
PUSH EAX
PUSH dword ptr [ESP + 0x7c]
PUSH dword ptr [ESP + 0x78]
PUSH dword ptr [ESP + 0x78]
PUSH dword ptr [ESP + 0x78]
PUSH dword ptr [ESP + 0x78]
PUSH dword ptr [ESP + 0x78]
PUSH EBP
CALL 0x00126020
MOV EDI,dword ptr [ESP + 0xa0]
ADD ESP,0x20
MOV dword ptr [EDI],EAX
MOV dword ptr [EDI + 0x4],EDX
TEST ESI,0x2
JZ 0x000aef38
XOR ESI,dword ptr [EBP + 0x54]
AND ESI,0x5
JZ 0x000aef38
SUB ESP,0x4
PUSH 0x0
PUSH EBP
PUSH dword ptr [ESP + 0x6c]
CALL 0x00097200
ADD ESP,0x10
MOV dword ptr [EBP + 0x5c],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV byte ptr [EAX + 0x1c4],0x1
ADD ESP,0x4c
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x4],EDX
LEA EBP,[ESP + 0x28]
SUB ESP,0x4
LEA ESI,[EBX + 0xffefb53f]
MOV EAX,dword ptr [ESP + 0x68]
MOV EAX,dword ptr [EAX]
PUSH dword ptr [ESP + 0x6c]
PUSH dword ptr [ESP + 0x6c]
PUSH EBP
CALL dword ptr [EAX + 0x40]
MOV ECX,0xe
MOV EAX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x14],ESI
MOV EDI,EAX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0x4]
TEST CL,CL
LEA ECX,[ESP + 0x30]
JNZ 0x000af080
CMP EAX,ECX
JZ 0x000aefb1
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [ESP + 0x70]
MOV ECX,dword ptr [EDX]
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [ECX + 0x8]
MOV EAX,dword ptr [EAX + 0x8]
BSWAP EAX
TEST ECX,ECX
JZ 0x000af2db
MOV ESI,EAX
AND ESI,0xfffff50f
CMP byte ptr [ECX + 0x318d],0x0
JZ 0x000aefe1
AND EAX,0xfffff58f
MOV ESI,EAX
MOV dword ptr [ESP + 0x4],EDX
XOR EDI,EDI
PUSH EBP
PUSH 0x1
PUSH dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP + 0x6c]
ADD EAX,0x8
PUSH EAX
CALL 0x00174930
ADD ESP,0x10
PUSH 0x0
PUSH 0x0
PUSH EDI
PUSH ESI
PUSH dword ptr [ESP + 0x84]
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
PUSH dword ptr [ESP + 0x7c]
CALL 0x0009fd60
ADD ESP,0x20
OR byte ptr [EAX + 0x92],0x80
MOV EBP,EAX
MOV EDX,dword ptr [ESP + 0x4]
JMP 0x000aedb0
SUB ESP,0x4
XOR EDI,EDI
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EDI
PUSH EAX
PUSH dword ptr [ESP + 0x94]
PUSH dword ptr [ESP + 0x90]
PUSH dword ptr [ESP + 0x8c]
PUSH dword ptr [ESP + 0x8c]
CALL 0x0009fff0
ADD ESP,0x30
MOV EDX,dword ptr [ESP + 0x4]
TEST EAX,EAX
MOV EBP,EAX
JNZ 0x000aedb0
ADD ESP,0x4c
XOR EBP,EBP
POP EBX
MOV EAX,EBP
POP ESI
POP EDI
POP EBP
RET
CMP EAX,ECX
JZ 0x000aecba
MOV dword ptr [ESP + 0x4],EDX
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4]
JMP 0x000aecba
MOV dword ptr [ESP + 0x4],EDX
AND ESI,0xfffff7ff
XOR EDI,EDI
PUSH 0x0
PUSH 0x1
PUSH dword ptr [ESP + 0x74]
MOV EAX,dword ptr [ESP + 0x6c]
ADD EAX,0x8
PUSH EAX
CALL 0x00174930
MOV dword ptr [ESP + 0x7c],EAX
ADD ESP,0xc
PUSH 0x0
PUSH 0x0
PUSH EDI
PUSH ESI
PUSH dword ptr [ESP + 0x88]
PUSH dword ptr [ESP + 0x84]
PUSH dword ptr [ESP + 0x7c]
CALL 0x0009b860
ADD ESP,0x20
MOV EDX,dword ptr [ESP + 0x4]
MOV EBP,EAX
JMP 0x000aedb0
CMP byte ptr [EDX + 0x3ced],0x0
JNZ 0x000aeebd
MOVZX EAX,byte ptr [EDX + 0x318d]
TEST AL,AL
JNZ 0x000aeee0
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x14]
BSWAP EAX
CMP EAX,0x4
JBE 0x000aeee0
MOV ESI,dword ptr [ESP + 0x6c]
MOV ECX,0x7
LEA EDI,[EBX + 0xffefb5a5]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x000af164
MOV EDI,dword ptr [ESP + 0x6c]
MOV ECX,0x7
LEA ESI,[EBX + 0xffefb5cb]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000af1d0
MOV ESI,dword ptr [EBP + 0x20]
MOV ECX,0xc
LEA EDI,[EBX + 0xffefb5ac]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000af1d0
MOV EAX,dword ptr [ESP + 0x64]
LEA EDX,[ESP + 0x10]
SUB ESP,0x8
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x34],EAX
LEA EAX,[EBX + 0x4c4]
MOV dword ptr [ESP + 0x2c],EAX
PUSH 0x1
PUSH 0x0
LEA ECX,[ESP + 0x34]
PUSH ECX
LEA ECX,[ESP + 0x3c]
PUSH ECX
PUSH EAX
PUSH EDX
CALL 0x000ae400
MOV EAX,dword ptr [ESP + 0x7c]
ADD ESP,0x1c
MOV EAX,dword ptr [EAX + 0x4]
MOVZX EAX,byte ptr [EAX + 0xac]
JMP 0x000aeee2
MOV ESI,dword ptr [ESP + 0x6c]
MOV ECX,0x7
LEA EDI,[EBX + 0xffefb5c4]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000af2b8
MOV ESI,dword ptr [EBP + 0x20]
MOV ECX,0xc
LEA EDI,[EBX + 0xffefb5b8]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x000af17d
JMP 0x000aeee0
TEST EDX,EDX
JNZ 0x000aeee2
PUSH EAX
LEA EAX,[EBX + 0xffefca48]
PUSH EAX
LEA EAX,[EBX + 0xffef8210]
PUSH 0x5c
PUSH EAX
CALL 0x00069d00
MOV EDX,dword ptr [ESP + 0xc]
OR byte ptr [EBP + 0x91],0x8
MOV EAX,dword ptr [ESP + 0x4]
MOVZX ECX,byte ptr [EAX + 0xac]
MOVZX EAX,CL
TEST CL,CL
JZ 0x000af10d
JMP 0x000aeee2
MOV dword ptr [ESP + 0xc],EDX
LEA EAX,[EBX + 0xffff47b0]
LEA ESI,[EBX + 0xffff47a0]
MOV dword ptr [ESP + 0x8],EAX
LEA EDI,[EBX + 0xffefb53f]
MOV EAX,0xe
SUB ESP,0x4
PUSH EAX
PUSH dword ptr [ESP + 0x74]
PUSH EDI
CALL 0x00029990
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000af230
ADD ESI,0x4
CMP dword ptr [ESP + 0x8],ESI
JZ 0x000af11c
MOV EDI,dword ptr [ESI]
SUB ESP,0xc
PUSH EDI
CALL 0x000295f0
ADD ESP,0x10
JMP 0x000af27f
MOV EDI,dword ptr [ESP + 0x6c]
MOV ECX,0x7
LEA ESI,[EBX + 0xffefb5d3]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x000af1ee
JMP 0x000aeee0
CALL 0x00096010
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nint FUN_000aec30(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,\n                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char cVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  size_t sVar10;\n  byte bVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  int **ppiVar15;\n  int **ppiVar16;\n  int **ppiVar17;\n  byte *pbVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  char *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  int unaff_retaddr;\n  int *apiStackY_8c [3];\n  int *apiStack_60 [8];\n  int *local_40 [3];\n  undefined1 local_34 [4];\n  byte local_30 [28];\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0xaec39;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar6 = FUN_000a77e0(param_1,param_2,param_4);\n  ppiVar16 = apiStack_60 + 1;\n  ppiVar15 = apiStack_60 + 1;\n  if (cVar6 == '\0') {\n    return 0;\n  }\n  uVar9 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar9 == 0) goto LAB_000af218;\n  if (*(char *)(uVar9 + 0x318d) == '\0') {\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }\n  else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000aedb0:\n  piVar13 = (int *)ppiVar16[0x18][1];\n  piVar14 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar16[1] = piVar13;\n  bVar11 = *(byte *)(piVar13 + 0x2b);\n  uVar9 = (uint)bVar11;\n  if (bVar11 != 0) {\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }\n  if (piVar14 == (int *)0x0) {\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }\n  bVar22 = false;\n  bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';\n  if (!bVar25) goto LAB_000af100;\n  iVar12 = 7;\n  pbVar18 = (byte *)".ctors.";\n  pbVar20 = (byte *)ppiVar16[0x1b];\n  do {\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  } while (bVar25);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar25) == bVar22;\n  if (bVar22) {\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }\nLAB_000aeee0:\n  uVar9 = 0;\nLAB_000aeee2:\n  uVar1 = *(uint *)(iVar8 + 0x54);\n  *(uint *)((int)ppiVar16 + -4) = uVar9;\n  *(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);\n  *(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);\n  *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);\n  *(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);\n  *(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);\n  *(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);\n  *(int *)((int)ppiVar16 + -0x20) = iVar8;\n  *(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;\n  uVar28 = FUN_00126020();\n  **(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;\n  return iVar8;\n}\n\n" comment comment (function_definition "int FUN_000aec30(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,\n                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char cVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  size_t sVar10;\n  byte bVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  int **ppiVar15;\n  int **ppiVar16;\n  int **ppiVar17;\n  byte *pbVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  char *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  int unaff_retaddr;\n  int *apiStackY_8c [3];\n  int *apiStack_60 [8];\n  int *local_40 [3];\n  undefined1 local_34 [4];\n  byte local_30 [28];\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0xaec39;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar6 = FUN_000a77e0(param_1,param_2,param_4);\n  ppiVar16 = apiStack_60 + 1;\n  ppiVar15 = apiStack_60 + 1;\n  if (cVar6 == '\0') {\n    return 0;\n  }\n  uVar9 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar9 == 0) goto LAB_000af218;\n  if (*(char *)(uVar9 + 0x318d) == '\0') {\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }\n  else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000aedb0:\n  piVar13 = (int *)ppiVar16[0x18][1];\n  piVar14 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar16[1] = piVar13;\n  bVar11 = *(byte *)(piVar13 + 0x2b);\n  uVar9 = (uint)bVar11;\n  if (bVar11 != 0) {\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }\n  if (piVar14 == (int *)0x0) {\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }\n  bVar22 = false;\n  bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';\n  if (!bVar25) goto LAB_000af100;\n  iVar12 = 7;\n  pbVar18 = (byte *)".ctors.";\n  pbVar20 = (byte *)ppiVar16[0x1b];\n  do {\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  } while (bVar25);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar25) == bVar22;\n  if (bVar22) {\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }\nLAB_000aeee0:\n  uVar9 = 0;\nLAB_000aeee2:\n  uVar1 = *(uint *)(iVar8 + 0x54);\n  *(uint *)((int)ppiVar16 + -4) = uVar9;\n  *(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);\n  *(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);\n  *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);\n  *(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);\n  *(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);\n  *(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);\n  *(int *)((int)ppiVar16 + -0x20) = iVar8;\n  *(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;\n  uVar28 = FUN_00126020();\n  **(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;\n  return iVar8;\n}" primitive_type (function_declarator "FUN_000aec30(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,\n                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,\n                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined4 *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char cVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  size_t sVar10;\n  byte bVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  int **ppiVar15;\n  int **ppiVar16;\n  int **ppiVar17;\n  byte *pbVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  char *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  int unaff_retaddr;\n  int *apiStackY_8c [3];\n  int *apiStack_60 [8];\n  int *local_40 [3];\n  undefined1 local_34 [4];\n  byte local_30 [28];\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0xaec39;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar6 = FUN_000a77e0(param_1,param_2,param_4);\n  ppiVar16 = apiStack_60 + 1;\n  ppiVar15 = apiStack_60 + 1;\n  if (cVar6 == '\0') {\n    return 0;\n  }\n  uVar9 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar9 == 0) goto LAB_000af218;\n  if (*(char *)(uVar9 + 0x318d) == '\0') {\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }\n  else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000aedb0:\n  piVar13 = (int *)ppiVar16[0x18][1];\n  piVar14 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar16[1] = piVar13;\n  bVar11 = *(byte *)(piVar13 + 0x2b);\n  uVar9 = (uint)bVar11;\n  if (bVar11 != 0) {\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }\n  if (piVar14 == (int *)0x0) {\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }\n  bVar22 = false;\n  bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';\n  if (!bVar25) goto LAB_000af100;\n  iVar12 = 7;\n  pbVar18 = (byte *)".ctors.";\n  pbVar20 = (byte *)ppiVar16[0x1b];\n  do {\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  } while (bVar25);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar25) == bVar22;\n  if (bVar22) {\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }\nLAB_000aeee0:\n  uVar9 = 0;\nLAB_000aeee2:\n  uVar1 = *(uint *)(iVar8 + 0x54);\n  *(uint *)((int)ppiVar16 + -4) = uVar9;\n  *(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);\n  *(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);\n  *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);\n  *(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);\n  *(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);\n  *(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);\n  *(int *)((int)ppiVar16 + -0x20) = iVar8;\n  *(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;\n  uVar28 = FUN_00126020();\n  **(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;\n  return iVar8;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int **ppiVar15;" primitive_type (pointer_declarator "**ppiVar15" * (pointer_declarator "*ppiVar15" * identifier)) ;) (declaration "int **ppiVar16;" primitive_type (pointer_declarator "**ppiVar16" * (pointer_declarator "*ppiVar16" * identifier)) ;) (declaration "int **ppiVar17;" primitive_type (pointer_declarator "**ppiVar17" * (pointer_declarator "*ppiVar17" * identifier)) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "undefined **ppuVar19;" type_identifier (pointer_declarator "**ppuVar19" * (pointer_declarator "*ppuVar19" * identifier)) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "undefined1 uVar26;" type_identifier identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "undefined8 uVar28;" type_identifier identifier ;) (declaration "int unaff_retaddr;" primitive_type identifier ;) (declaration "int *apiStackY_8c [3];" primitive_type (pointer_declarator "*apiStackY_8c [3]" * (array_declarator "apiStackY_8c [3]" identifier [ number_literal ])) ;) (declaration "int *apiStack_60 [8];" primitive_type (pointer_declarator "*apiStack_60 [8]" * (array_declarator "apiStack_60 [8]" identifier [ number_literal ])) ;) (declaration "int *local_40 [3];" primitive_type (pointer_declarator "*local_40 [3]" * (array_declarator "local_40 [3]" identifier [ number_literal ])) ;) (declaration "undefined1 local_34 [4];" type_identifier (array_declarator "local_34 [4]" identifier [ number_literal ]) ;) (declaration "byte local_30 [28];" type_identifier (array_declarator "local_30 [28]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xaec39;" (assignment_expression "uStack_14 = 0xaec39" identifier = number_literal) ;) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "param_9[1] = 0;" (assignment_expression "param_9[1] = 0" (subscript_expression "param_9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "apiStack_60[0] = param_5;" (assignment_expression "apiStack_60[0] = param_5" (subscript_expression "apiStack_60[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "cVar6 = FUN_000a77e0(param_1,param_2,param_4);" (assignment_expression "cVar6 = FUN_000a77e0(param_1,param_2,param_4)" identifier = (call_expression "FUN_000a77e0(param_1,param_2,param_4)" identifier (argument_list "(param_1,param_2,param_4)" ( identifier , identifier , identifier )))) ;) (expression_statement "ppiVar16 = apiStack_60 + 1;" (assignment_expression "ppiVar16 = apiStack_60 + 1" identifier = (binary_expression "apiStack_60 + 1" identifier + number_literal)) ;) (expression_statement "ppiVar15 = apiStack_60 + 1;" (assignment_expression "ppiVar15 = apiStack_60 + 1" identifier = (binary_expression "apiStack_60 + 1" identifier + number_literal)) ;) (if_statement "if (cVar6 == '\0') {\n    return 0;\n  }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar9 = *(uint *)(DAT_0038f378 + 8);" (assignment_expression "uVar9 = *(uint *)(DAT_0038f378 + 8)" identifier = (pointer_expression "*(uint *)(DAT_0038f378 + 8)" * (cast_expression "(uint *)(DAT_0038f378 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 == 0) goto LAB_000af218;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000af218;" goto statement_identifier ;)) (if_statement "if (*(char *)(uVar9 + 0x318d) == '\0') {\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }\n  else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" if (parenthesized_expression "(*(char *)(uVar9 + 0x318d) == '\0')" ( (binary_expression "*(char *)(uVar9 + 0x318d) == '\0'" (pointer_expression "*(char *)(uVar9 + 0x318d)" * (cast_expression "(char *)(uVar9 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x318d)" ( (binary_expression "uVar9 + 0x318d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }" { (labeled_statement "LAB_000aeca9:\n    piVar13 = &DAT_0038f378;" statement_identifier : (expression_statement "piVar13 = &DAT_0038f378;" (assignment_expression "piVar13 = &DAT_0038f378" identifier = (pointer_expression "&DAT_0038f378" & identifier)) ;)) (if_statement "if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }" if (parenthesized_expression "(*(char *)(uVar9 + 0x5871) != '\0')" ( (binary_expression "*(char *)(uVar9 + 0x5871) != '\0'" (pointer_expression "*(char *)(uVar9 + 0x5871)" * (cast_expression "(char *)(uVar9 + 0x5871)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x5871)" ( (binary_expression "uVar9 + 0x5871" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }" { (expression_statement "uVar24 = apiStack_60 + 1 < (int **)0x4;" (assignment_expression "uVar24 = apiStack_60 + 1 < (int **)0x4" identifier = (binary_expression "apiStack_60 + 1 < (int **)0x4" (binary_expression "apiStack_60 + 1" identifier + number_literal) < (cast_expression "(int **)0x4" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "uVar26 = &stack0x00000000 == (undefined1 *)0x60;" (assignment_expression "uVar26 = &stack0x00000000 == (undefined1 *)0x60" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x60" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x60" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "apiStack_60[2] = &DAT_0038f378;" (assignment_expression "apiStack_60[2] = &DAT_0038f378" (subscript_expression "apiStack_60[2]" identifier [ number_literal ]) = (pointer_expression "&DAT_0038f378" & identifier)) ;) (expression_statement "(**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);" (call_expression "(**(code **)(*param_2 + 0x40))(local_34,param_2,param_3)" (parenthesized_expression "(**(code **)(*param_2 + 0x40))" ( (pointer_expression "**(code **)(*param_2 + 0x40)" * (pointer_expression "*(code **)(*param_2 + 0x40)" * (cast_expression "(code **)(*param_2 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x40)" ( (binary_expression "*param_2 + 0x40" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(local_34,param_2,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = 0xe;" (assignment_expression "iVar8 = 0xe" identifier = number_literal) ;) (expression_statement "apiStack_60[2] = (int *)0x28a53f;" (assignment_expression "apiStack_60[2] = (int *)0x28a53f" (subscript_expression "apiStack_60[2]" identifier [ number_literal ]) = (cast_expression "(int *)0x28a53f" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar18 = (byte *)".text.unlikely";" (assignment_expression "pbVar18 = (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 "pbVar20 = (byte *)local_40[2];" (assignment_expression "pbVar20 = (byte *)local_40[2]" identifier = (cast_expression "(byte *)local_40[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[2]" identifier [ number_literal ]))) ;) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);" do (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = *pbVar18 < *pbVar20;" (assignment_expression "uVar24 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "uVar26 = *pbVar18 == *pbVar20;" (assignment_expression "uVar26 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar26)" ( (cast_expression "(bool)uVar26" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "ppiVar15 = apiStack_60;" (assignment_expression "ppiVar15 = apiStack_60" identifier = identifier) ;) (if_statement "if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }" if (parenthesized_expression "((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24)" ( (binary_expression "(!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar26)" ( (binary_expression "!(bool)uVar24 && !(bool)uVar26" (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar26" ! (cast_expression "(bool)uVar26" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }" { (if_statement "if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }" if (parenthesized_expression "((byte *)local_40[2] != local_30)" ( (binary_expression "(byte *)local_40[2] != local_30" (cast_expression "(byte *)local_40[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[2]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n          FUN_001e6db0(local_40[2]);\n        }" { (expression_statement "FUN_001e6db0(local_40[2]);" (call_expression "FUN_001e6db0(local_40[2])" identifier (argument_list "(local_40[2])" ( (subscript_expression "local_40[2]" identifier [ number_literal ]) ))) ;) })) (expression_statement "ppiVar17 = apiStack_60;" (assignment_expression "ppiVar17 = apiStack_60" identifier = identifier) ;) (expression_statement "uVar9 = *(uint *)(*param_4 + 8);" (assignment_expression "uVar9 = *(uint *)(*param_4 + 8)" identifier = (pointer_expression "*(uint *)(*param_4 + 8)" * (cast_expression "(uint *)(*param_4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_4 + 8)" ( (binary_expression "*param_4 + 8" (pointer_expression "*param_4" * identifier) + number_literal) ))))) ;) (expression_statement "uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;" (assignment_expression "uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal))) ;) (if_statement "if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;" if (parenthesized_expression "(*(int *)(*apiStack_60[1] + 8) == 0)" ( (binary_expression "*(int *)(*apiStack_60[1] + 8) == 0" (pointer_expression "*(int *)(*apiStack_60[1] + 8)" * (cast_expression "(int *)(*apiStack_60[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*apiStack_60[1] + 8)" ( (binary_expression "*apiStack_60[1] + 8" (pointer_expression "*apiStack_60[1]" * (subscript_expression "apiStack_60[1]" identifier [ number_literal ])) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000af2db;" goto statement_identifier ;)) (expression_statement "uVar4 = uVar1 & 0xfffff50f;" (assignment_expression "uVar4 = uVar1 & 0xfffff50f" identifier = (binary_expression "uVar1 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }" if (parenthesized_expression "(*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0')" ( (binary_expression "*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0'" (pointer_expression "*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*apiStack_60[1] + 8) + 0x318d)" ( (binary_expression "*(int *)(*apiStack_60[1] + 8) + 0x318d" (pointer_expression "*(int *)(*apiStack_60[1] + 8)" * (cast_expression "(int *)(*apiStack_60[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*apiStack_60[1] + 8)" ( (binary_expression "*apiStack_60[1] + 8" (pointer_expression "*apiStack_60[1]" * (subscript_expression "apiStack_60[1]" identifier [ number_literal ])) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar4 = uVar1 & 0xfffff58f;\n        }" { (expression_statement "uVar4 = uVar1 & 0xfffff58f;" (assignment_expression "uVar4 = uVar1 & 0xfffff58f" identifier = (binary_expression "uVar1 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);" (assignment_expression "uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34)" identifier = (call_expression "FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34)" identifier (argument_list "(unaff_retaddr + 8,apiStack_60[2],1,local_34)" ( (binary_expression "unaff_retaddr + 8" identifier + number_literal) , (subscript_expression "apiStack_60[2]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (expression_statement "iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);" (assignment_expression "iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0)" identifier = (call_expression "FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0)" identifier (argument_list "(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0)" ( identifier , identifier , (subscript_expression "local_40[2]" identifier [ number_literal ]) , identifier , (binary_expression "uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar4 | (uVar9 & 0xff00) << 8" identifier | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal)) , number_literal , number_literal , number_literal )))) ;) (expression_statement "ppiVar16 = apiStack_60;" (assignment_expression "ppiVar16 = apiStack_60" identifier = identifier) ;) (expression_statement "*(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;" (assignment_expression "*(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar8 + 0x92)" * (cast_expression "(byte *)(iVar8 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x92)" ( (binary_expression "iVar8 + 0x92" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar8 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar8 + 0x92)" * (cast_expression "(byte *)(iVar8 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x92)" ( (binary_expression "iVar8 + 0x92" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_000aedb0;" goto statement_identifier ;) })) (expression_statement "piVar13 = apiStack_60[1];" (assignment_expression "piVar13 = apiStack_60[1]" identifier = (subscript_expression "apiStack_60[1]" identifier [ number_literal ])) ;) (if_statement "if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }" if (parenthesized_expression "((byte *)local_40[2] != local_30)" ( (binary_expression "(byte *)local_40[2] != local_30" (cast_expression "(byte *)local_40[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[2]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }" { (expression_statement "FUN_001e6db0(local_40[2]);" (call_expression "FUN_001e6db0(local_40[2])" identifier (argument_list "(local_40[2])" ( (subscript_expression "local_40[2]" identifier [ number_literal ]) ))) ;) (expression_statement "ppiVar15 = apiStack_60;" (assignment_expression "ppiVar15 = apiStack_60" identifier = identifier) ;) (expression_statement "piVar13 = apiStack_60[1];" (assignment_expression "piVar13 = apiStack_60[1]" identifier = (subscript_expression "apiStack_60[1]" identifier [ number_literal ])) ;) })) })) (expression_statement "ppiVar15[1] = piVar13;" (assignment_expression "ppiVar15[1] = piVar13" (subscript_expression "ppiVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppiVar15[10] = ppiVar15[0x19];" (assignment_expression "ppiVar15[10] = ppiVar15[0x19]" (subscript_expression "ppiVar15[10]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x19]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[0xb] = ppiVar15[0x1a];" (assignment_expression "ppiVar15[0xb] = ppiVar15[0x1a]" (subscript_expression "ppiVar15[0xb]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x1a]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-2] = (int *)local_34;" (assignment_expression "ppiVar15[-2] = (int *)local_34" (subscript_expression "ppiVar15[-2]" identifier [ number_literal ]) = (cast_expression "(int *)local_34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar15[-3] = ppiVar15[0x18] + 0x81;" (assignment_expression "ppiVar15[-3] = ppiVar15[0x18] + 0x81" (subscript_expression "ppiVar15[-3]" identifier [ number_literal ]) = (binary_expression "ppiVar15[0x18] + 0x81" (subscript_expression "ppiVar15[0x18]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "ppiVar15[-4] = (int *)(ppiVar15 + 7);" (assignment_expression "ppiVar15[-4] = (int *)(ppiVar15 + 7)" (subscript_expression "ppiVar15[-4]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar15 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar15 + 7)" ( (binary_expression "ppiVar15 + 7" identifier + number_literal) )))) ;) (expression_statement "ppiVar15[-5] = (int *)0xaece7;" (assignment_expression "ppiVar15[-5] = (int *)0xaece7" (subscript_expression "ppiVar15[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0xaece7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_000a9000();" (call_expression "FUN_000a9000()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar13 = ppiVar15[6];" (assignment_expression "piVar13 = ppiVar15[6]" identifier = (subscript_expression "ppiVar15[6]" identifier [ number_literal ])) ;) (expression_statement "ppiVar17 = ppiVar15 + -1;" (assignment_expression "ppiVar17 = ppiVar15 + -1" identifier = (binary_expression "ppiVar15 + -1" identifier + number_literal)) ;) (expression_statement "uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);" (assignment_expression "uVar9 = *(uint *)(*ppiVar15[0x1b] + 8)" identifier = (pointer_expression "*(uint *)(*ppiVar15[0x1b] + 8)" * (cast_expression "(uint *)(*ppiVar15[0x1b] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppiVar15[0x1b] + 8)" ( (binary_expression "*ppiVar15[0x1b] + 8" (pointer_expression "*ppiVar15[0x1b]" * (subscript_expression "ppiVar15[0x1b]" identifier [ number_literal ])) + number_literal) ))))) ;) (expression_statement "uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;" (assignment_expression "uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "uVar4 = (uVar9 & 0xff00) << 8;" (assignment_expression "uVar4 = (uVar9 & 0xff00) << 8" identifier = (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) ;) (if_statement "if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }" if (parenthesized_expression "(piVar13 == ppiVar15[0x17] + 0x82)" ( (binary_expression "piVar13 == ppiVar15[0x17] + 0x82" identifier == (binary_expression "ppiVar15[0x17] + 0x82" (subscript_expression "ppiVar15[0x17]" identifier [ number_literal ]) + number_literal)) )) (compound_statement "{\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "ppiVar15[-3] = (int *)0x1;" (assignment_expression "ppiVar15[-3] = (int *)0x1" (subscript_expression "ppiVar15[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-4] = (int *)0x0;" (assignment_expression "ppiVar15[-4] = (int *)0x0" (subscript_expression "ppiVar15[-4]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-5] = (int *)0x0;" (assignment_expression "ppiVar15[-5] = (int *)0x0" (subscript_expression "ppiVar15[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-6] = (int *)0x0;" (assignment_expression "ppiVar15[-6] = (int *)0x0" (subscript_expression "ppiVar15[-6]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-7] = (int *)0x1;" (assignment_expression "ppiVar15[-7] = (int *)0x1" (subscript_expression "ppiVar15[-7]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-8] = (int *)0x0;" (assignment_expression "ppiVar15[-8] = (int *)0x0" (subscript_expression "ppiVar15[-8]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);" (assignment_expression "ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18)" (subscript_expression "ppiVar15[-9]" identifier [ number_literal ]) = (cast_expression "(int *)(uVar1 | uVar4 | uVar9 << 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 | uVar4 | uVar9 << 0x18)" ( (binary_expression "uVar1 | uVar4 | uVar9 << 0x18" (binary_expression "uVar1 | uVar4" identifier | identifier) | (binary_expression "uVar9 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "ppiVar15[-10] = ppiVar15[0x1c];" (assignment_expression "ppiVar15[-10] = ppiVar15[0x1c]" (subscript_expression "ppiVar15[-10]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x1c]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-0xb] = ppiVar15[0x1a];" (assignment_expression "ppiVar15[-0xb] = ppiVar15[0x1a]" (subscript_expression "ppiVar15[-0xb]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x1a]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-0xc] = ppiVar15[0x18];" (assignment_expression "ppiVar15[-0xc] = ppiVar15[0x18]" (subscript_expression "ppiVar15[-0xc]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x18]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-0xd] = ppiVar15[0x17];" (assignment_expression "ppiVar15[-0xd] = ppiVar15[0x17]" (subscript_expression "ppiVar15[-0xd]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x17]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-0xe] = (int *)0xaf062;" (assignment_expression "ppiVar15[-0xe] = (int *)0xaf062" (subscript_expression "ppiVar15[-0xe]" identifier [ number_literal ]) = (cast_expression "(int *)0xaf062" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = FUN_0009fff0();" (assignment_expression "iVar8 = FUN_0009fff0()" identifier = (call_expression "FUN_0009fff0()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppiVar16 = ppiVar15 + -1;" (assignment_expression "ppiVar16 = ppiVar15 + -1" identifier = (binary_expression "ppiVar15 + -1" identifier + number_literal)) ;) (expression_statement "apiStack_60[1] = *ppiVar15;" (assignment_expression "apiStack_60[1] = *ppiVar15" (subscript_expression "apiStack_60[1]" identifier [ number_literal ]) = (pointer_expression "*ppiVar15" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }" else (compound_statement "{\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }" { (expression_statement "iVar8 = *(int *)(**ppiVar15 + 8);" (assignment_expression "iVar8 = *(int *)(**ppiVar15 + 8)" identifier = (pointer_expression "*(int *)(**ppiVar15 + 8)" * (cast_expression "(int *)(**ppiVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**ppiVar15 + 8)" ( (binary_expression "**ppiVar15 + 8" (pointer_expression "**ppiVar15" * (pointer_expression "*ppiVar15" * identifier)) + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }" { (labeled_statement "LAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;" statement_identifier : comment (expression_statement "*(code **)((int)ppiVar17 + -4) = FUN_000af2e0;" (assignment_expression "*(code **)((int)ppiVar17 + -4) = FUN_000af2e0" (pointer_expression "*(code **)((int)ppiVar17 + -4)" * (cast_expression "(code **)((int)ppiVar17 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar17 + -4)" ( (binary_expression "(int)ppiVar17 + -4" (cast_expression "(int)ppiVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "FUN_00096010();" (call_expression "FUN_00096010()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar5 = uVar1 & 0xfffff50f;" (assignment_expression "uVar5 = uVar1 & 0xfffff50f" identifier = (binary_expression "uVar1 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }" if (parenthesized_expression "(*(char *)(iVar8 + 0x318d) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x318d)" * (cast_expression "(char *)(iVar8 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x318d)" ( (binary_expression "iVar8 + 0x318d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar5 = uVar1 & 0xfffff58f;\n      }" { (expression_statement "uVar5 = uVar1 & 0xfffff58f;" (assignment_expression "uVar5 = uVar1 & 0xfffff58f" identifier = (binary_expression "uVar1 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "puVar2 = (undefined4 *)piVar13[6];" (assignment_expression "puVar2 = (undefined4 *)piVar13[6]" identifier = (cast_expression "(undefined4 *)piVar13[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[6]" identifier [ number_literal ]))) ;) (expression_statement "*ppiVar15 = *ppiVar15;" (assignment_expression "*ppiVar15 = *ppiVar15" (pointer_expression "*ppiVar15" * identifier) = (pointer_expression "*ppiVar15" * identifier)) ;) (expression_statement "ppiVar15[-2] = (int *)local_34;" (assignment_expression "ppiVar15[-2] = (int *)local_34" (subscript_expression "ppiVar15[-2]" identifier [ number_literal ]) = (cast_expression "(int *)local_34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar15[-3] = (int *)0x1;" (assignment_expression "ppiVar15[-3] = (int *)0x1" (subscript_expression "ppiVar15[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-4] = (int *)*puVar2;" (assignment_expression "ppiVar15[-4] = (int *)*puVar2" (subscript_expression "ppiVar15[-4]" identifier [ number_literal ]) = (cast_expression "(int *)*puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "ppiVar15[-5] = ppiVar15[0x17] + 2;" (assignment_expression "ppiVar15[-5] = ppiVar15[0x17] + 2" (subscript_expression "ppiVar15[-5]" identifier [ number_literal ]) = (binary_expression "ppiVar15[0x17] + 2" (subscript_expression "ppiVar15[0x17]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "ppiVar15[-6] = (int *)0xaed4e;" (assignment_expression "ppiVar15[-6] = (int *)0xaed4e" (subscript_expression "ppiVar15[-6]" identifier [ number_literal ]) = (cast_expression "(int *)0xaed4e" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar7 = FUN_00174930();" (assignment_expression "uVar7 = FUN_00174930()" identifier = (call_expression "FUN_00174930()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppiVar15[-2] = (int *)0x0;" (assignment_expression "ppiVar15[-2] = (int *)0x0" (subscript_expression "ppiVar15[-2]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-3] = (int *)0x0;" (assignment_expression "ppiVar15[-3] = (int *)0x0" (subscript_expression "ppiVar15[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-4] = (int *)0x0;" (assignment_expression "ppiVar15[-4] = (int *)0x0" (subscript_expression "ppiVar15[-4]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);" (assignment_expression "ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18)" (subscript_expression "ppiVar15[-5]" identifier [ number_literal ]) = (cast_expression "(int *)(uVar5 | uVar4 | uVar9 << 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 | uVar4 | uVar9 << 0x18)" ( (binary_expression "uVar5 | uVar4 | uVar9 << 0x18" (binary_expression "uVar5 | uVar4" identifier | identifier) | (binary_expression "uVar9 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "ppiVar15[-6] = ppiVar15[0x1c];" (assignment_expression "ppiVar15[-6] = ppiVar15[0x1c]" (subscript_expression "ppiVar15[-6]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x1c]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-7] = ppiVar15[9];" (assignment_expression "ppiVar15[-7] = ppiVar15[9]" (subscript_expression "ppiVar15[-7]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[9]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-8] = (int *)uVar7;" (assignment_expression "ppiVar15[-8] = (int *)uVar7" (subscript_expression "ppiVar15[-8]" identifier [ number_literal ]) = (cast_expression "(int *)uVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar15[-9] = ppiVar15[0x17];" (assignment_expression "ppiVar15[-9] = ppiVar15[0x17]" (subscript_expression "ppiVar15[-9]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x17]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-10] = (int *)0xaed6c;" (assignment_expression "ppiVar15[-10] = (int *)0xaed6c" (subscript_expression "ppiVar15[-10]" identifier [ number_literal ]) = (cast_expression "(int *)0xaed6c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = FUN_0009fd60();" (assignment_expression "iVar8 = FUN_0009fd60()" identifier = (call_expression "FUN_0009fd60()" identifier (argument_list "()" ( )))) ;) (expression_statement "apiStack_60[1] = *ppiVar15;" (assignment_expression "apiStack_60[1] = *ppiVar15" (subscript_expression "apiStack_60[1]" identifier [ number_literal ]) = (pointer_expression "*ppiVar15" * identifier)) ;) (expression_statement "ppiVar16 = ppiVar15 + -1;" (assignment_expression "ppiVar16 = ppiVar15 + -1" identifier = (binary_expression "ppiVar15 + -1" identifier + number_literal)) ;) (if_statement "if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }" if (parenthesized_expression "(-1 < (char)*(byte *)(iVar8 + 0x92))" ( (binary_expression "-1 < (char)*(byte *)(iVar8 + 0x92)" number_literal < (cast_expression "(char)*(byte *)(iVar8 + 0x92)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(iVar8 + 0x92)" * (cast_expression "(byte *)(iVar8 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x92)" ( (binary_expression "iVar8 + 0x92" identifier + number_literal) )))))) )) (compound_statement "{\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }" { (expression_statement "*(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;" (assignment_expression "*(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar8 + 0x92)" * (cast_expression "(byte *)(iVar8 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x92)" ( (binary_expression "iVar8 + 0x92" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar8 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar8 + 0x92)" * (cast_expression "(byte *)(iVar8 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x92)" ( (binary_expression "iVar8 + 0x92" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "iVar12 = piVar13[6];" (assignment_expression "iVar12 = piVar13[6]" identifier = (subscript_expression "piVar13[6]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar7 = *(undefined4 *)(iVar12 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);" (assignment_expression "*(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4)" (pointer_expression "*(undefined4 *)(iVar8 + 0x9c)" * (cast_expression "(undefined4 *)(iVar8 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x9c)" ( (binary_expression "iVar8 + 0x9c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar12 + 4)" * (cast_expression "(undefined4 *)(iVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar12 + 0xc);" (assignment_expression "uVar3 = *(undefined4 *)(iVar12 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0xc)" * (cast_expression "(undefined4 *)(iVar12 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0xa0) = uVar7;" (assignment_expression "*(undefined4 *)(iVar8 + 0xa0) = uVar7" (pointer_expression "*(undefined4 *)(iVar8 + 0xa0)" * (cast_expression "(undefined4 *)(iVar8 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xa0)" ( (binary_expression "iVar8 + 0xa0" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = *(undefined4 *)(iVar12 + 0x10);" (assignment_expression "uVar7 = *(undefined4 *)(iVar12 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x10)" * (cast_expression "(undefined4 *)(iVar12 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0xa4) = uVar3;" (assignment_expression "*(undefined4 *)(iVar8 + 0xa4) = uVar3" (pointer_expression "*(undefined4 *)(iVar8 + 0xa4)" * (cast_expression "(undefined4 *)(iVar8 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xa4)" ( (binary_expression "iVar8 + 0xa4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 0xa8) = uVar7;" (assignment_expression "*(undefined4 *)(iVar8 + 0xa8) = uVar7" (pointer_expression "*(undefined4 *)(iVar8 + 0xa8)" * (cast_expression "(undefined4 *)(iVar8 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xa8)" ( (binary_expression "iVar8 + 0xa8" identifier + number_literal) )))) = identifier) ;) (expression_statement "ppiVar16 = ppiVar15 + -1;" (assignment_expression "ppiVar16 = ppiVar15 + -1" identifier = (binary_expression "ppiVar15 + -1" identifier + number_literal)) ;) })) }))) }) (else_clause "else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" else (compound_statement "{\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" { (expression_statement "uVar1 = *(uint *)(*param_5 + 8);" (assignment_expression "uVar1 = *(uint *)(*param_5 + 8)" identifier = (pointer_expression "*(uint *)(*param_5 + 8)" * (cast_expression "(uint *)(*param_5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (expression_statement "uVar4 = (uVar1 & 0xff0000) >> 8;" (assignment_expression "uVar4 = (uVar1 & 0xff0000) >> 8" identifier = (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) ;) (if_statement "if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;" if (parenthesized_expression "((uVar4 & 0x200) == 0)" ( (binary_expression "(uVar4 & 0x200) == 0" (parenthesized_expression "(uVar4 & 0x200)" ( (binary_expression "uVar4 & 0x200" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000aeca9;" goto statement_identifier ;)) (expression_statement "apiStack_60[0] = (int *)0x0;" (assignment_expression "apiStack_60[0] = (int *)0x0" (subscript_expression "apiStack_60[0]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apiStack_60[2] = &DAT_0038f378;" (assignment_expression "apiStack_60[2] = &DAT_0038f378" (subscript_expression "apiStack_60[2]" identifier [ number_literal ]) = (pointer_expression "&DAT_0038f378" & identifier)) ;) (expression_statement "uVar7 = FUN_00174930(param_1 + 8,param_4,1);" (assignment_expression "uVar7 = FUN_00174930(param_1 + 8,param_4,1)" identifier = (call_expression "FUN_00174930(param_1 + 8,param_4,1)" identifier (argument_list "(param_1 + 8,param_4,1)" ( (binary_expression "param_1 + 8" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);" (assignment_expression "iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0)" identifier = (call_expression "FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0)" identifier (argument_list "(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0)" ( identifier , identifier , identifier , (binary_expression "uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | uVar4 & 0xfffff7ff" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "uVar4 & 0xfffff7ff" identifier & number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal)) , number_literal , number_literal , number_literal )))) ;) (expression_statement "ppiVar16 = apiStack_60 + 1;" (assignment_expression "ppiVar16 = apiStack_60 + 1" identifier = (binary_expression "apiStack_60 + 1" identifier + number_literal)) ;) (expression_statement "apiStack_60[1] = apiStack_60[2];" (assignment_expression "apiStack_60[1] = apiStack_60[2]" (subscript_expression "apiStack_60[1]" identifier [ number_literal ]) = (subscript_expression "apiStack_60[2]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_000aedb0:\n  piVar13 = (int *)ppiVar16[0x18][1];" statement_identifier : (expression_statement "piVar13 = (int *)ppiVar16[0x18][1];" (assignment_expression "piVar13 = (int *)ppiVar16[0x18][1]" identifier = (cast_expression "(int *)ppiVar16[0x18][1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x18][1]" (subscript_expression "ppiVar16[0x18]" identifier [ number_literal ]) [ number_literal ]))) ;)) (expression_statement "piVar14 = *(int **)(*apiStack_60[1] + 8);" (assignment_expression "piVar14 = *(int **)(*apiStack_60[1] + 8)" identifier = (pointer_expression "*(int **)(*apiStack_60[1] + 8)" * (cast_expression "(int **)(*apiStack_60[1] + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*apiStack_60[1] + 8)" ( (binary_expression "*apiStack_60[1] + 8" (pointer_expression "*apiStack_60[1]" * (subscript_expression "apiStack_60[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (expression_statement "ppiVar16[1] = piVar13;" (assignment_expression "ppiVar16[1] = piVar13" (subscript_expression "ppiVar16[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = *(byte *)(piVar13 + 0x2b);" (assignment_expression "bVar11 = *(byte *)(piVar13 + 0x2b)" identifier = (pointer_expression "*(byte *)(piVar13 + 0x2b)" * (cast_expression "(byte *)(piVar13 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar13 + 0x2b)" ( (binary_expression "piVar13 + 0x2b" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = (uint)bVar11;" (assignment_expression "uVar9 = (uint)bVar11" identifier = (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar11 != 0) {\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }" { (if_statement "if (piVar14 == (int *)0x0) goto LAB_000af218;" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000af218;" goto statement_identifier ;)) (goto_statement "goto LAB_000aeee2;" goto statement_identifier ;) })) (if_statement "if (piVar14 == (int *)0x0) {\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }" { (labeled_statement "LAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;" statement_identifier : (expression_statement "ppiVar16[0xffffffff] = (int *)uVar9;" (assignment_expression "ppiVar16[0xffffffff] = (int *)uVar9" (subscript_expression "ppiVar16[0xffffffff]" identifier [ number_literal ]) = (cast_expression "(int *)uVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "ppiVar16[0xfffffffe] = (int *)"options";" (assignment_expression "ppiVar16[0xfffffffe] = (int *)"options"" (subscript_expression "ppiVar16[0xfffffffe]" identifier [ number_literal ]) = (cast_expression "(int *)"options"" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (string_literal ""options"" " string_content "))) ;) (expression_statement "ppiVar16[0xfffffffd] = (int *)0x5c;" (assignment_expression "ppiVar16[0xfffffffd] = (int *)0x5c" (subscript_expression "ppiVar16[0xfffffffd]" identifier [ number_literal ]) = (cast_expression "(int *)0x5c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";" (assignment_expression "ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h"" (subscript_expression "ppiVar16[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)"../../gold/parameters.h"" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (string_literal ""../../gold/parameters.h"" " string_content "))) ;) comment (expression_statement "ppiVar16[0xfffffffb] = (int *)0xaf22e;" (assignment_expression "ppiVar16[0xfffffffb] = (int *)0xaf22e" (subscript_expression "ppiVar16[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)0xaf22e" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';" (assignment_expression "bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0'" identifier = (binary_expression "*(char *)((int)piVar14 + 0x318d) == '\0'" (pointer_expression "*(char *)((int)piVar14 + 0x318d)" * (cast_expression "(char *)((int)piVar14 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0x318d)" ( (binary_expression "(int)piVar14 + 0x318d" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar25) goto LAB_000af100;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_000af100;" goto statement_identifier ;)) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".ctors.";" (assignment_expression "pbVar18 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  } while (bVar25);" do (compound_statement "{\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar25 = *pbVar18 == *pbVar20;" (assignment_expression "bVar25 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar25) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar25) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar25) == bVar22" (parenthesized_expression "(!bVar22 && !bVar25)" ( (binary_expression "!bVar22 && !bVar25" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) {\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }" { (labeled_statement "LAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;" statement_identifier : (expression_statement "*(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;" (assignment_expression "*(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8" (pointer_expression "*(byte *)(iVar8 + 0x91)" * (cast_expression "(byte *)(iVar8 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x91)" ( (binary_expression "iVar8 + 0x91" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar8 + 0x91) | 8" (pointer_expression "*(byte *)(iVar8 + 0x91)" * (cast_expression "(byte *)(iVar8 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x91)" ( (binary_expression "iVar8 + 0x91" identifier + number_literal) )))) | number_literal)) ;)) (expression_statement "bVar11 = *(byte *)(ppiVar16[1] + 0x2b);" (assignment_expression "bVar11 = *(byte *)(ppiVar16[1] + 0x2b)" identifier = (pointer_expression "*(byte *)(ppiVar16[1] + 0x2b)" * (cast_expression "(byte *)(ppiVar16[1] + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar16[1] + 0x2b)" ( (binary_expression "ppiVar16[1] + 0x2b" (subscript_expression "ppiVar16[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar9 = (uint)bVar11;" (assignment_expression "uVar9 = (uint)bVar11" identifier = (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }" if (parenthesized_expression "(*(char *)((int)piVar14 + 0x3ced) == '\0')" ( (binary_expression "*(char *)((int)piVar14 + 0x3ced) == '\0'" (pointer_expression "*(char *)((int)piVar14 + 0x3ced)" * (cast_expression "(char *)((int)piVar14 + 0x3ced)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0x3ced)" ( (binary_expression "(int)piVar14 + 0x3ced" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }" { (labeled_statement "LAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;" statement_identifier : (if_statement "if (bVar11 != 0) goto LAB_000aeee2;" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000aeee2;" goto statement_identifier ;))) (goto_statement "goto LAB_000af10d;" goto statement_identifier ;) })) (if_statement "if (bVar11 != 0) goto LAB_000aeee2;" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000aeee2;" goto statement_identifier ;)) (labeled_statement "LAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);" statement_identifier : (expression_statement "cVar6 = *(char *)((int)piVar14 + 0x318d);" (assignment_expression "cVar6 = *(char *)((int)piVar14 + 0x318d)" identifier = (pointer_expression "*(char *)((int)piVar14 + 0x318d)" * (cast_expression "(char *)((int)piVar14 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0x318d)" ( (binary_expression "(int)piVar14 + 0x318d" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (if_statement "if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;" if (parenthesized_expression "(*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0')" ( (binary_expression "*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0'" (pointer_expression "*(char *)((int)ppiVar16[0x18] + 0x1cd)" * (cast_expression "(char *)((int)ppiVar16[0x18] + 0x1cd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16[0x18] + 0x1cd)" ( (binary_expression "(int)ppiVar16[0x18] + 0x1cd" (cast_expression "(int)ppiVar16[0x18]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar16[0x18]" identifier [ number_literal ])) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000af114;" goto statement_identifier ;)) (if_statement "if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }" { (expression_statement "ppiVar16[3] = piVar14;" (assignment_expression "ppiVar16[3] = piVar14" (subscript_expression "ppiVar16[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppuVar19 = &PTR_s__text_unlikely_003837a0;" (assignment_expression "ppuVar19 = &PTR_s__text_unlikely_003837a0" identifier = (pointer_expression "&PTR_s__text_unlikely_003837a0" & identifier)) ;) (expression_statement "ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;" (assignment_expression "ppiVar16[2] = (int *)&PTR_s_aranges_003837b0" (subscript_expression "ppiVar16[2]" identifier [ number_literal ]) = (cast_expression "(int *)&PTR_s_aranges_003837b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&PTR_s_aranges_003837b0" & identifier))) ;) (expression_statement "pcVar21 = ".text.unlikely";" (assignment_expression "pcVar21 = ".text.unlikely"" identifier = (string_literal "".text.unlikely"" " string_content ")) ;) (expression_statement "sVar10 = 0xe;" (assignment_expression "sVar10 = 0xe" identifier = number_literal) ;) (while_statement "while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }" { (expression_statement "ppiVar16[0xfffffffe] = (int *)sVar10;" (assignment_expression "ppiVar16[0xfffffffe] = (int *)sVar10" (subscript_expression "ppiVar16[0xfffffffe]" identifier [ number_literal ]) = (cast_expression "(int *)sVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar16[0xfffffffd] = ppiVar16[0x1b];" (assignment_expression "ppiVar16[0xfffffffd] = ppiVar16[0x1b]" (subscript_expression "ppiVar16[0xfffffffd]" identifier [ number_literal ]) = (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ])) ;) (expression_statement "ppiVar16[0xfffffffc] = (int *)pcVar21;" (assignment_expression "ppiVar16[0xfffffffc] = (int *)pcVar21" (subscript_expression "ppiVar16[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)pcVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar16[0xfffffffb] = (int *)0xaf28d;" (assignment_expression "ppiVar16[0xfffffffb] = (int *)0xaf28d" (subscript_expression "ppiVar16[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)0xaf28d" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);" (assignment_expression "iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe])" identifier = (call_expression "strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe])" identifier (argument_list "((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe])" ( (cast_expression "(char *)ppiVar16[0xfffffffc]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0xfffffffc]" identifier [ number_literal ])) , (cast_expression "(char *)ppiVar16[0xfffffffd]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0xfffffffd]" identifier [ number_literal ])) , (cast_expression "(size_t)ppiVar16[0xfffffffe]" ( (type_descriptor "size_t" primitive_type) ) (subscript_expression "ppiVar16[0xfffffffe]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "ppuVar19 = ppuVar19 + 1;" (assignment_expression "ppuVar19 = ppuVar19 + 1" identifier = (binary_expression "ppuVar19 + 1" identifier + number_literal)) ;) (if_statement "if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;" if (parenthesized_expression "((undefined **)ppiVar16[2] == ppuVar19)" ( (binary_expression "(undefined **)ppiVar16[2] == ppuVar19" (cast_expression "(undefined **)ppiVar16[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppiVar16[2]" identifier [ number_literal ])) == identifier) )) (goto_statement "goto LAB_000af11c;" goto statement_identifier ;)) (expression_statement "pcVar21 = *ppuVar19;" (assignment_expression "pcVar21 = *ppuVar19" identifier = (pointer_expression "*ppuVar19" * identifier)) ;) (expression_statement "ppiVar16[0xfffffffc] = (int *)pcVar21;" (assignment_expression "ppiVar16[0xfffffffc] = (int *)pcVar21" (subscript_expression "ppiVar16[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)pcVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar16[0xfffffffb] = (int *)0xaf2ac;" (assignment_expression "ppiVar16[0xfffffffb] = (int *)0xaf2ac" (subscript_expression "ppiVar16[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)0xaf2ac" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar10 = strlen((char *)ppiVar16[0xfffffffc]);" (assignment_expression "sVar10 = strlen((char *)ppiVar16[0xfffffffc])" identifier = (call_expression "strlen((char *)ppiVar16[0xfffffffc])" identifier (argument_list "((char *)ppiVar16[0xfffffffc])" ( (cast_expression "(char *)ppiVar16[0xfffffffc]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0xfffffffc]" identifier [ number_literal ])) )))) ;) })) (expression_statement "piVar14 = ppiVar16[3];" (assignment_expression "piVar14 = ppiVar16[3]" identifier = (subscript_expression "ppiVar16[3]" identifier [ number_literal ])) ;) (expression_statement "*(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;" (assignment_expression "*(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8" (pointer_expression "*(byte *)(iVar8 + 0x91)" * (cast_expression "(byte *)(iVar8 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x91)" ( (binary_expression "iVar8 + 0x91" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar8 + 0x91) | 8" (pointer_expression "*(byte *)(iVar8 + 0x91)" * (cast_expression "(byte *)(iVar8 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x91)" ( (binary_expression "iVar8 + 0x91" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "bVar11 = *(byte *)(ppiVar16[1] + 0x2b);" (assignment_expression "bVar11 = *(byte *)(ppiVar16[1] + 0x2b)" identifier = (pointer_expression "*(byte *)(ppiVar16[1] + 0x2b)" * (cast_expression "(byte *)(ppiVar16[1] + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar16[1] + 0x2b)" ( (binary_expression "ppiVar16[1] + 0x2b" (subscript_expression "ppiVar16[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar9 = (uint)bVar11;" (assignment_expression "uVar9 = (uint)bVar11" identifier = (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_000af249;" goto statement_identifier ;) })) }) (else_clause "else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }" else (compound_statement "{\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }" { (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".dtors.";" (assignment_expression "pbVar18 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);" do (compound_statement "{\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) goto LAB_000aee98;" if (parenthesized_expression "(bVar22)" ( identifier )) (goto_statement "goto LAB_000aee98;" goto statement_identifier ;)) (expression_statement "iVar12 = 0xc;" (assignment_expression "iVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".init_array.";" (assignment_expression "pbVar18 = (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 "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);" do (compound_statement "{\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar18 < *pbVar20;" (assignment_expression "bVar25 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar25 && !bVar22) == bVar25;" (assignment_expression "bVar22 = (!bVar25 && !bVar22) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar22) == bVar25" (parenthesized_expression "(!bVar25 && !bVar22)" ( (binary_expression "!bVar25 && !bVar22" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) goto LAB_000aee98;" if (parenthesized_expression "(bVar22)" ( identifier )) (goto_statement "goto LAB_000aee98;" goto statement_identifier ;)) (expression_statement "iVar12 = 0xc;" (assignment_expression "iVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".fini_array.";" (assignment_expression "pbVar18 = (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 "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);" do (compound_statement "{\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;" if (parenthesized_expression "((!bVar23 && !bVar22) == bVar23)" ( (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_000aee98;" goto statement_identifier ;)) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';" (assignment_expression "bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0'" identifier = (binary_expression "*(char *)((int)piVar14 + 0xad5) == '\0'" (pointer_expression "*(char *)((int)piVar14 + 0xad5)" * (cast_expression "(char *)((int)piVar14 + 0xad5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0xad5)" ( (binary_expression "(int)piVar14 + 0xad5" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }" { (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (expression_statement "pbVar20 = (byte *)".ctors";" (assignment_expression "pbVar20 = (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 (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);" do (compound_statement "{\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar25 = *pbVar18 == *pbVar20;" (assignment_expression "bVar25 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar25) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar25) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar25) == bVar22" (parenthesized_expression "(!bVar22 && !bVar25)" ( (binary_expression "!bVar22 && !bVar25" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }" { (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (expression_statement "pbVar20 = (byte *)".dtors";" (assignment_expression "pbVar20 = (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 (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);" do (compound_statement "{\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;" if (parenthesized_expression "((!bVar23 && !bVar22) != bVar23)" ( (binary_expression "(!bVar23 && !bVar22) != bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000af100;" goto statement_identifier ;)) })) (goto_statement "goto LAB_000aee98;" goto statement_identifier ;) })) (labeled_statement "LAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;" statement_identifier : (if_statement "if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;" if (parenthesized_expression "(*(char *)((int)piVar14 + 0x3ced) != '\0')" ( (binary_expression "*(char *)((int)piVar14 + 0x3ced) != '\0'" (pointer_expression "*(char *)((int)piVar14 + 0x3ced)" * (cast_expression "(char *)((int)piVar14 + 0x3ced)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0x3ced)" ( (binary_expression "(int)piVar14 + 0x3ced" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000aeebd;" goto statement_identifier ;))) (labeled_statement "LAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);" statement_identifier : (expression_statement "cVar6 = *(char *)((int)piVar14 + 0x318d);" (assignment_expression "cVar6 = *(char *)((int)piVar14 + 0x318d)" identifier = (pointer_expression "*(char *)((int)piVar14 + 0x318d)" * (cast_expression "(char *)((int)piVar14 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0x318d)" ( (binary_expression "(int)piVar14 + 0x318d" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (labeled_statement "LAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }" statement_identifier : (if_statement "if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }" { (labeled_statement "LAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);" statement_identifier : (expression_statement "uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);" (assignment_expression "uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14)" identifier = (pointer_expression "*(uint *)(*ppiVar16[0x1c] + 0x14)" * (cast_expression "(uint *)(*ppiVar16[0x1c] + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppiVar16[0x1c] + 0x14)" ( (binary_expression "*ppiVar16[0x1c] + 0x14" (pointer_expression "*ppiVar16[0x1c]" * (subscript_expression "ppiVar16[0x1c]" identifier [ number_literal ])) + number_literal) ))))) ;)) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "bVar22 = uVar9 < 4;" (assignment_expression "bVar22 = uVar9 < 4" identifier = (binary_expression "uVar9 < 4" identifier < number_literal)) ;) (expression_statement "bVar25 = uVar9 == 4;" (assignment_expression "bVar25 = uVar9 == 4" identifier = (binary_expression "uVar9 == 4" identifier == number_literal)) ;) (if_statement "if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }" if (parenthesized_expression "(4 < uVar9)" ( (binary_expression "4 < uVar9" number_literal < identifier) )) (compound_statement "{\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }" { (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (expression_statement "pbVar20 = (byte *)".ctors";" (assignment_expression "pbVar20 = (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 (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);" do (compound_statement "{\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar25 = *pbVar18 == *pbVar20;" (assignment_expression "bVar25 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar25) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar25) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar25) == bVar22" (parenthesized_expression "(!bVar22 && !bVar25)" ( (binary_expression "!bVar22 && !bVar25" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }" { (labeled_statement "LAB_000af164:\n          bVar25 = false;" statement_identifier : (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;)) (expression_statement "iVar12 = 0xc;" (assignment_expression "iVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar18 = *(byte **)(iVar8 + 0x20);" (assignment_expression "pbVar18 = *(byte **)(iVar8 + 0x20)" identifier = (pointer_expression "*(byte **)(iVar8 + 0x20)" * (cast_expression "(byte **)(iVar8 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar20 = (byte *)".init_array";" (assignment_expression "pbVar20 = (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 (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar18 < *pbVar20;" (assignment_expression "bVar25 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar22 = (!bVar25 && !bVar22) == bVar25;" (assignment_expression "bVar22 = (!bVar25 && !bVar22) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar22) == bVar25" (parenthesized_expression "(!bVar25 && !bVar22)" ( (binary_expression "!bVar25 && !bVar22" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) goto LAB_000af1d0;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_000af1d0;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }" else (compound_statement "{\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }" { (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".ctors.";" (assignment_expression "pbVar18 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) goto LAB_000af164;" if (parenthesized_expression "(bVar22)" ( identifier )) (goto_statement "goto LAB_000af164;" goto statement_identifier ;)) (labeled_statement "LAB_000af1d0:\n          bVar25 = false;" statement_identifier : (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;)) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (expression_statement "pbVar20 = (byte *)".dtors";" (assignment_expression "pbVar20 = (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 (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar18 < *pbVar20;" (assignment_expression "bVar25 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar25 && !bVar22) == bVar25;" (assignment_expression "bVar22 = (!bVar25 && !bVar22) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar22) == bVar25" (parenthesized_expression "(!bVar25 && !bVar22)" ( (binary_expression "!bVar25 && !bVar22" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }" { (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".dtors.";" (assignment_expression "pbVar18 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);" do (compound_statement "{\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) goto LAB_000aeee0;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_000aeee0;" goto statement_identifier ;)) })) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "iVar12 = 0xc;" (assignment_expression "iVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar18 = *(byte **)(iVar8 + 0x20);" (assignment_expression "pbVar18 = *(byte **)(iVar8 + 0x20)" identifier = (pointer_expression "*(byte **)(iVar8 + 0x20)" * (cast_expression "(byte **)(iVar8 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar20 = (byte *)".fini_array";" (assignment_expression "pbVar20 = (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 (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar18 < *pbVar20;" (assignment_expression "bVar25 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;" if (parenthesized_expression "((!bVar25 && !bVar22) != bVar25)" ( (binary_expression "(!bVar25 && !bVar22) != bVar25" (parenthesized_expression "(!bVar25 && !bVar22)" ( (binary_expression "!bVar25 && !bVar22" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000aeee0;" goto statement_identifier ;)) }))) (expression_statement "ppiVar16[10] = ppiVar16[0x19];" (assignment_expression "ppiVar16[10] = ppiVar16[0x19]" (subscript_expression "ppiVar16[10]" identifier [ number_literal ]) = (subscript_expression "ppiVar16[0x19]" identifier [ number_literal ])) ;) (expression_statement "ppiVar16[0xb] = ppiVar16[0x1a];" (assignment_expression "ppiVar16[0xb] = ppiVar16[0x1a]" (subscript_expression "ppiVar16[0xb]" identifier [ number_literal ]) = (subscript_expression "ppiVar16[0x1a]" identifier [ number_literal ])) ;) (expression_statement "ppiVar16[9] = &DAT_0038f4c4;" (assignment_expression "ppiVar16[9] = &DAT_0038f4c4" (subscript_expression "ppiVar16[9]" identifier [ number_literal ]) = (pointer_expression "&DAT_0038f4c4" & identifier)) ;) (expression_statement "ppiVar16[0xfffffffd] = (int *)0x1;" (assignment_expression "ppiVar16[0xfffffffd] = (int *)0x1" (subscript_expression "ppiVar16[0xfffffffd]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar16[0xfffffffc] = (int *)0x0;" (assignment_expression "ppiVar16[0xfffffffc] = (int *)0x0" (subscript_expression "ppiVar16[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);" (assignment_expression "ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9)" (subscript_expression "ppiVar16[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar16 + 9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar16 + 9)" ( (binary_expression "ppiVar16 + 9" identifier + number_literal) )))) ;) (expression_statement "ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);" (assignment_expression "ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10)" (subscript_expression "ppiVar16[0xfffffffa]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar16 + 10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar16 + 10)" ( (binary_expression "ppiVar16 + 10" identifier + number_literal) )))) ;) (expression_statement "ppiVar16[0xfffffff9] = &DAT_0038f4c4;" (assignment_expression "ppiVar16[0xfffffff9] = &DAT_0038f4c4" (subscript_expression "ppiVar16[0xfffffff9]" identifier [ number_literal ]) = (pointer_expression "&DAT_0038f4c4" & identifier)) ;) (expression_statement "ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);" (assignment_expression "ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4)" (subscript_expression "ppiVar16[0xfffffff8]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar16 + 4)" ( (binary_expression "ppiVar16 + 4" identifier + number_literal) )))) ;) (expression_statement "ppiVar16[0xfffffff7] = (int *)0xaf1b3;" (assignment_expression "ppiVar16[0xfffffff7] = (int *)0xaf1b3" (subscript_expression "ppiVar16[0xfffffff7]" identifier [ number_literal ]) = (cast_expression "(int *)0xaf1b3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_000ae400();" (call_expression "FUN_000ae400()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppiVar15 = ppiVar16 + 0x17;" (assignment_expression "ppiVar15 = ppiVar16 + 0x17" identifier = (binary_expression "ppiVar16 + 0x17" identifier + number_literal)) ;) (expression_statement "ppiVar16 = ppiVar16 + 0xffffffff;" (assignment_expression "ppiVar16 = ppiVar16 + 0xffffffff" identifier = (binary_expression "ppiVar16 + 0xffffffff" identifier + number_literal)) ;) (expression_statement "uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);" (assignment_expression "uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac)" identifier = (binary_expression "(uint)*(byte *)((*ppiVar15)[1] + 0xac)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((*ppiVar15)[1] + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*ppiVar15)[1] + 0xac)" ( (binary_expression "(*ppiVar15)[1] + 0xac" (subscript_expression "(*ppiVar15)[1]" (parenthesized_expression "(*ppiVar15)" ( (pointer_expression "*ppiVar15" * identifier) )) [ number_literal ]) + number_literal) ))))) ;) (goto_statement "goto LAB_000aeee2;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_000aeee0:\n  uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_000aeee2:\n  uVar1 = *(uint *)(iVar8 + 0x54);" statement_identifier : (expression_statement "uVar1 = *(uint *)(iVar8 + 0x54);" (assignment_expression "uVar1 = *(uint *)(iVar8 + 0x54)" identifier = (pointer_expression "*(uint *)(iVar8 + 0x54)" * (cast_expression "(uint *)(iVar8 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x54)" ( (binary_expression "iVar8 + 0x54" identifier + number_literal) ))))) ;)) (expression_statement "*(uint *)((int)ppiVar16 + -4) = uVar9;" (assignment_expression "*(uint *)((int)ppiVar16 + -4) = uVar9" (pointer_expression "*(uint *)((int)ppiVar16 + -4)" * (cast_expression "(uint *)((int)ppiVar16 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -4)" ( (binary_expression "(int)ppiVar16 + -4" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -8)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -8)" ( (binary_expression "(int)ppiVar16 + -8" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x78)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x78)" ( (binary_expression "(int)ppiVar16 + 0x78" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0xc)" ( (binary_expression "(int)ppiVar16 + -0xc" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x70)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x70)" ( (binary_expression "(int)ppiVar16 + 0x70" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x10)" ( (binary_expression "(int)ppiVar16 + -0x10" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x6c)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x6c)" ( (binary_expression "(int)ppiVar16 + 0x6c" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x14)" ( (binary_expression "(int)ppiVar16 + -0x14" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x68)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x68)" ( (binary_expression "(int)ppiVar16 + 0x68" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x18)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x18)" ( (binary_expression "(int)ppiVar16 + -0x18" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 100)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 100)" ( (binary_expression "(int)ppiVar16 + 100" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x1c)" ( (binary_expression "(int)ppiVar16 + -0x1c" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x60)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x60)" ( (binary_expression "(int)ppiVar16 + 0x60" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)ppiVar16 + -0x20) = iVar8;" (assignment_expression "*(int *)((int)ppiVar16 + -0x20) = iVar8" (pointer_expression "*(int *)((int)ppiVar16 + -0x20)" * (cast_expression "(int *)((int)ppiVar16 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x20)" ( (binary_expression "(int)ppiVar16 + -0x20" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x24)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x24)" ( (binary_expression "(int)ppiVar16 + -0x24" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar28 = FUN_00126020();" (assignment_expression "uVar28 = FUN_00126020()" identifier = (call_expression "FUN_00126020()" identifier (argument_list "()" ( )))) ;) (expression_statement "**(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;" (assignment_expression "**(undefined8 **)((int)ppiVar16 + 0x80) = uVar28" (pointer_expression "**(undefined8 **)((int)ppiVar16 + 0x80)" * (pointer_expression "*(undefined8 **)((int)ppiVar16 + 0x80)" * (cast_expression "(undefined8 **)((int)ppiVar16 + 0x80)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar16 + 0x80)" ( (binary_expression "(int)ppiVar16 + 0x80" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) = identifier) ;) (if_statement "if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }" if (parenthesized_expression "(((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0))" ( (binary_expression "((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)" (parenthesized_expression "((uVar1 & 2) != 0)" ( (binary_expression "(uVar1 & 2) != 0" (parenthesized_expression "(uVar1 & 2)" ( (binary_expression "uVar1 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)" ( (binary_expression "((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0" (parenthesized_expression "((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5)" ( (binary_expression "(uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5" (parenthesized_expression "(uVar1 ^ *(uint *)(iVar8 + 0x54))" ( (binary_expression "uVar1 ^ *(uint *)(iVar8 + 0x54)" identifier ^ (pointer_expression "*(uint *)(iVar8 + 0x54)" * (cast_expression "(uint *)(iVar8 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x54)" ( (binary_expression "iVar8 + 0x54" identifier + number_literal) ))))) )) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }" { (expression_statement "*(undefined4 *)((int)ppiVar16 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -8) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -8)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -8)" ( (binary_expression "(int)ppiVar16 + -8" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppiVar16 + -0xc) = iVar8;" (assignment_expression "*(int *)((int)ppiVar16 + -0xc) = iVar8" (pointer_expression "*(int *)((int)ppiVar16 + -0xc)" * (cast_expression "(int *)((int)ppiVar16 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0xc)" ( (binary_expression "(int)ppiVar16 + -0xc" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x10)" ( (binary_expression "(int)ppiVar16 + -0x10" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x60)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x60)" ( (binary_expression "(int)ppiVar16 + 0x60" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x14)" ( (binary_expression "(int)ppiVar16 + -0x14" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_00097200();" (assignment_expression "uVar7 = FUN_00097200()" identifier = (call_expression "FUN_00097200()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x5c) = uVar7;" (assignment_expression "*(undefined4 *)(iVar8 + 0x5c) = uVar7" (pointer_expression "*(undefined4 *)(iVar8 + 0x5c)" * (cast_expression "(undefined4 *)(iVar8 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x5c)" ( (binary_expression "iVar8 + 0x5c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1" (pointer_expression "*(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4)" * (cast_expression "(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)ppiVar16 + 0x60) + 0x1c4)" ( (binary_expression "*(int *)((int)ppiVar16 + 0x60) + 0x1c4" (pointer_expression "*(int *)((int)ppiVar16 + 0x60)" * (cast_expression "(int *)((int)ppiVar16 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x60)" ( (binary_expression "(int)ppiVar16 + 0x60" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) = number_literal) ;) (return_statement "return iVar8;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original name: layout<32, true>\n   DWARF original prototype: Output_section * layout<32,_true>(Layout * this,\n   Sized_relobj_file<32,_true> * object, uint shndx, char * name, Shdr<32,_true> * shdr, uint\n   sh_type, uint reloc_shndx, uint param_9, off_t * off) */\n\nOutput_section * __thiscall\ngold::Layout::layout<32,_true>\n          (Layout *this,Sized_relobj_file<32,_true> *object,uint shndx,char *name,\n          Shdr<32,_true> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  bool bVar8;\n  char cVar9;\n  char *pcVar10;\n  Output_section *pOVar11;\n  General_options *pGVar12;\n  Output_section_order OVar13;\n  uint uVar14;\n  size_t sVar15;\n  byte bVar16;\n  int iVar17;\n  Parameters **ppPVar18;\n  General_options *pGVar19;\n  Parameters ***pppPVar20;\n  Parameters ***pppPVar21;\n  byte *pbVar22;\n  __hashtable_alloc *p_Var23;\n  undefined1 *puVar24;\n  byte *pbVar25;\n  __node_gen_type _Var26;\n  bool bVar27;\n  undefined1 uVar28;\n  bool bVar29;\n  undefined1 uVar30;\n  byte bVar31;\n  off_t oVar32;\n  Layout *unaff_retaddr;\n  Parameters **local_5c;\n  Parameters **local_58;\n  __node_gen_type __node_gen;\n  Key name_key;\n  __hashtable_alloc local_30 [28];\n  undefined4 uStack_14;\n  \n  bVar31 = 0;\n  uStack_14 = 0xaec39;\n  *(undefined4 *)off = 0;\n  *(undefined4 *)((int)off + 4) = 0;\n  bVar8 = include_section<32,_true>(this,object,name,shdr);\n  pppPVar20 = &local_5c;\n  if (!bVar8) {\n    return (Output_section *)0x0;\n  }\n  pGVar12 = parameters->options_;\n  pppPVar21 = &local_5c;\n  if (pGVar12 == (General_options *)0x0) goto LAB_000af218;\n  if ((pGVar12->relocatable_).value == false) {\nLAB_000aeca9:\n    ppPVar18 = &parameters;\n    if ((pGVar12->text_unlikely_segment_).value != false) {\n      uVar28 = &local_5c < (undefined1 *)0x4;\n      uVar30 = &stack0x00000000 == (undefined1 *)0x60;\n      local_58 = &parameters;\n      (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);\n      iVar17 = 0xe;\n      local_58 = (Parameters **)0x28a53f;\n      p_Var23 = (__hashtable_alloc *)".text.unlikely";\n      _Var26 = __node_gen;\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        uVar28 = (byte)*p_Var23 < (byte)*_Var26._M_h;\n        uVar30 = *p_Var23 == *_Var26._M_h;\n        p_Var23 = p_Var23 + (uint)bVar31 * -2 + 1;\n        _Var26._M_h = _Var26._M_h + (uint)bVar31 * -2 + 1;\n      } while ((bool)uVar30);\n      pppPVar20 = (Parameters ***)&stack0xffffffa0;\n      if ((!(bool)uVar28 && !(bool)uVar30) == (bool)uVar28) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        uVar14 = *(uint *)(*(int *)name + 8);\n        uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000af2db;\n        uVar6 = uVar5 & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add\n                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar11 = get_output_section(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),\n                                     ORDER_INVALID,false);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        goto LAB_000aedb0;\n      }\n      ppPVar18 = local_5c;\n      if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        ppPVar18 = local_5c;\n      }\n    }\n    *(Parameters ***)((int)pppPVar20 + 4) = ppPVar18;\n    *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n    *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n    *(Key **)((int)pppPVar20 + -8) = &name_key;\n    *(int *)((int)pppPVar20 + -0xc) = *(int *)((int)pppPVar20 + 0x60) + 0x204;\n    *(undefined1 **)((int)pppPVar20 + -0x10) = (undefined1 *)((int)pppPVar20 + 0x1c);\n    *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaece7;\n    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             **)((int)pppPVar20 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar20 + -0xc));\n    iVar17 = *(int *)((int)pppPVar20 + 0x1c);\n    uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 8);\n    uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;\n    uVar6 = (uVar14 & 0xff00) << 8;\n    if (iVar17 == *(int *)((int)pppPVar20 + 0x60) + 0x208) {\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x18) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0x1c) = 0;\n      *(uint *)((int)pppPVar20 + -0x20) = uVar5 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x24) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x28) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n      *(undefined4 *)((int)pppPVar20 + -0x2c) = *(undefined4 *)((int)pppPVar20 + 100);\n      *(undefined4 *)((int)pppPVar20 + -0x30) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x34) = 0xaf062;\n      pOVar11 = choose_output_section\n                          (*(Layout **)((int)pppPVar20 + -0x30),*(Relobj **)((int)pppPVar20 + -0x2c)\n                           ,*(char **)((int)pppPVar20 + -0x28),*(Elf_Word *)((int)pppPVar20 + -0x24)\n                           ,*(Elf_Xword *)((int)pppPVar20 + -0x20),*(bool *)((int)pppPVar20 + -0x18)\n                           ,*(Output_section_order *)((int)pppPVar20 + -0x14),\n                           *(bool *)((int)pppPVar20 + -0x10),*(bool *)((int)pppPVar20 + -0xc),\n                           *(bool *)((int)pppPVar20 + -8));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (pOVar11 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      iVar1 = *(int *)(**(int **)((int)pppPVar20 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        pppPVar20[-1] = (Parameters **)layout<64,_false>;\n        Target::abi_pagesize((Target *)*pppPVar20);\n      }\n      uVar7 = uVar5 & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar7 = uVar5 & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar17 + 0x18);\n      *(int **)((int)pppPVar20 + 4) = *(int **)((int)pppPVar20 + 4);\n      *(Key **)((int)pppPVar20 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar20 + -0x10) = *(int *)((int)pppPVar20 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaed4e;\n      pcVar10 = Stringpool_template<char>::add\n                          (*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),\n                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),\n                           *(Key **)((int)pppPVar20 + -4));\n      *(undefined4 *)((int)pppPVar20 + -4) = 0;\n      *(undefined4 *)((int)pppPVar20 + -8) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(uint *)((int)pppPVar20 + -0x10) = uVar7 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 0x28);\n      *(char **)((int)pppPVar20 + -0x1c) = pcVar10;\n      *(undefined4 *)((int)pppPVar20 + -0x20) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaed6c;\n      pOVar11 = get_output_section(*(Layout **)((int)pppPVar20 + -0x20),\n                                   *(char **)((int)pppPVar20 + -0x1c),\n                                   *(Key *)((int)pppPVar20 + -0x18),\n                                   *(Elf_Word *)((int)pppPVar20 + -0x14),\n                                   *(Elf_Xword *)((int)pppPVar20 + -0x10),\n                                   *(Output_section_order *)((int)pppPVar20 + -8),\n                                   *(bool *)((int)pppPVar20 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (-1 < (char)pOVar11->field_0x92) {\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        iVar17 = *(int *)(iVar17 + 0x18);\n        uVar3 = *(undefined4 *)(iVar17 + 8);\n        *(undefined4 *)&pOVar11->extra_segment_flags_ = *(undefined4 *)(iVar17 + 4);\n        uVar4 = *(undefined4 *)(iVar17 + 0xc);\n        *(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar17 + 0x10);\n        *(undefined4 *)&pOVar11->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar11->segment_alignment_ + 4) = uVar3;\n      }\n    }\n  }\n  else {\n    uVar14 = shdr->p_->sh_flags;\n    uVar5 = (uVar14 & 0xff0000) >> 8;\n    if ((uVar5 & 0x200) == 0) goto LAB_000aeca9;\n    local_58 = &parameters;\n    pcVar10 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    pOVar11 = make_output_section(this,pcVar10,sh_type,\n                                  (ulonglong)\n                                  (uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |\n                                  uVar14 << 0x18),ORDER_INVALID,false);\n    pppPVar20 = &local_5c;\n    local_5c = local_58;\n  }\nLAB_000aedb0:\n  iVar17 = *(int *)(*(int *)((int)pppPVar20 + 0x60) + 4);\n  pGVar19 = (*local_5c)->options_;\n  *(int *)((int)pppPVar20 + 4) = iVar17;\n  bVar16 = *(byte *)(iVar17 + 0xac);\n  pGVar12 = (General_options *)(uint)bVar16;\n  pppPVar21 = pppPVar20;\n  if (bVar16 != 0) {\n    if (pGVar19 == (General_options *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }\n  if (pGVar19 == (General_options *)0x0) {\nLAB_000af218:\n    *(General_options **)((int)pppPVar21 + -4) = pGVar12;\n    *(char **)((int)pppPVar21 + -8) = "options";\n    *(undefined4 *)((int)pppPVar21 + -0xc) = 0x5c;\n    *(char **)((int)pppPVar21 + -0x10) = "../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)pppPVar21 + -0x14) = &UNK_000af22e;\n    do_gold_unreachable(*(char **)((int)pppPVar21 + -0x10),*(int *)((int)pppPVar21 + -0xc),\n                        *(char **)((int)pppPVar21 + -8));\n  }\n  bVar8 = false;\n  bVar29 = (pGVar19->relocatable_).value == false;\n  if (!bVar29) goto LAB_000af100;\n  iVar17 = 7;\n  pbVar22 = (byte *)".ctors.";\n  pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n  do {\n    if (iVar17 == 0) break;\n    iVar17 = iVar17 + -1;\n    bVar8 = *pbVar22 < *pbVar25;\n    bVar29 = *pbVar22 == *pbVar25;\n    pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n    pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n  } while (bVar29);\n  bVar27 = false;\n  bVar8 = (!bVar8 && !bVar29) == bVar8;\n  if (bVar8) {\nLAB_000aee98:\n    pOVar11->field_0x91 = pOVar11->field_0x91 | 8;\n    bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);\n    pGVar12 = (General_options *)(uint)bVar16;\n    if ((pGVar19->text_reorder_).value == false) {\nLAB_000af249:\n      if (bVar16 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar16 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar9 = (pGVar19->relocatable_).value;\n    if (*(char *)(*(int *)((int)pppPVar20 + 0x60) + 0x1cd) != '\0') goto LAB_000af114;\n    if ((bool)cVar9 == false) {\n      *(General_options **)((int)pppPVar20 + 0xc) = pGVar19;\n      puVar24 = special_ordering_of_input_section(char_const*)::text_section_sort;\n      *(char ***)((int)pppPVar20 + 8) = gdb_fast_lookup_sections;\n      pcVar10 = ".text.unlikely";\n      sVar15 = 0xe;\n      while( true ) {\n        *(size_t *)((int)pppPVar20 + -8) = sVar15;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf28d;\n        iVar17 = strncmp(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),\n                         *(size_t *)((int)pppPVar20 + -8));\n        if (iVar17 == 0) break;\n        puVar24 = (undefined1 *)((int)puVar24 + 4);\n        if (*(undefined4 **)((int)pppPVar20 + 8) == (undefined4 *)puVar24) goto LAB_000af11c;\n        pcVar10 = *(char **)puVar24;\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf2ac;\n        sVar15 = strlen(*(char **)((int)pppPVar20 + -0x10));\n      }\n      pGVar19 = *(General_options **)((int)pppPVar20 + 0xc);\n      pOVar11->field_0x91 = pOVar11->field_0x91 | 8;\n      bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);\n      pGVar12 = (General_options *)(uint)bVar16;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar17 = 7;\n    pbVar22 = (byte *)".dtors.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    bVar29 = false;\n    bVar8 = (!bVar27 && !bVar8) == bVar27;\n    if (bVar8) goto LAB_000aee98;\n    iVar17 = 0xc;\n    pbVar22 = (byte *)".init_array.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar29 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    bVar27 = false;\n    bVar8 = (!bVar29 && !bVar8) == bVar29;\n    if (bVar8) goto LAB_000aee98;\n    iVar17 = 0xc;\n    pbVar22 = (byte *)".fini_array.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    if ((!bVar27 && !bVar8) == bVar27) goto LAB_000aee98;\n    bVar8 = false;\n    bVar29 = (pGVar19->ctors_in_init_array_).value == false;\n    if (!bVar29) {\n      iVar17 = 7;\n      pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n      pbVar25 = (byte *)".ctors";\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar8 = *pbVar22 < *pbVar25;\n        bVar29 = *pbVar22 == *pbVar25;\n        pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n        pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n      } while (bVar29);\n      bVar27 = false;\n      bVar8 = (!bVar8 && !bVar29) == bVar8;\n      if (!bVar8) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".dtors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar27 = *pbVar22 < *pbVar25;\n          bVar8 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar27 && !bVar8) != bVar27) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if ((pGVar19->text_reorder_).value != false) goto LAB_000aeebd;\nLAB_000af10d:\n    cVar9 = (pGVar19->relocatable_).value;\nLAB_000af114:\n    if (cVar9 == '\0') {\nLAB_000af11c:\n      uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14);\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n      bVar8 = uVar14 < 4;\n      bVar29 = uVar14 == 4;\n      if (4 < uVar14) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".ctors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar8 = *pbVar22 < *pbVar25;\n          bVar29 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar29);\n        bVar27 = false;\n        bVar8 = (!bVar8 && !bVar29) == bVar8;\n        if (bVar8) {\nLAB_000af164:\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".init_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) goto LAB_000af1d0;\n        }\n        else {\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }\n        *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n        *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24);\n        *(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10);\n        *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3;\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                  ();\n        pGVar12 = (General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }\nLAB_000aeee0:\n  pGVar12 = (General_options *)0x0;\nLAB_000aeee2:\n  uVar14 = (uint)pOVar11->flags_;\n  *(General_options **)((int)pppPVar20 + -4) = pGVar12;\n  *(undefined4 *)((int)pppPVar20 + -8) = *(undefined4 *)((int)pppPVar20 + 0x78);\n  *(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x70);\n  *(undefined4 *)((int)pppPVar20 + -0x10) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n  *(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x68);\n  *(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 100);\n  *(undefined4 *)((int)pppPVar20 + -0x1c) = *(undefined4 *)((int)pppPVar20 + 0x60);\n  *(Output_section **)((int)pppPVar20 + -0x20) = pOVar11;\n  *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaef04;\n  oVar32 = Output_section::add_input_section<32,_true>\n                     (*(Output_section **)((int)pppPVar20 + -0x20),\n                      *(Layout **)((int)pppPVar20 + -0x1c),\n                      *(Sized_relobj_file<32,_true> **)((int)pppPVar20 + -0x18),\n                      *(uint *)((int)pppPVar20 + -0x14),*(char **)((int)pppPVar20 + -0x10),\n                      *(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4));\n  **(off_t **)((int)pppPVar20 + 0x80) = oVar32;\n  if (((uVar14 & 2) != 0) && (((uVar14 ^ (uint)pOVar11->flags_) & 5) != 0)) {\n    *(undefined4 *)((int)pppPVar20 + -8) = 0;\n    *(Output_section **)((int)pppPVar20 + -0xc) = pOVar11;\n    *(undefined4 *)((int)pppPVar20 + -0x10) = *(undefined4 *)((int)pppPVar20 + 0x60);\n    *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaef32;\n    OVar13 = default_section_order\n                       (*(Layout **)((int)pppPVar20 + -0x10),\n                        *(Output_section **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8));\n    pOVar11->order_ = OVar13;\n  }\n  *(undefined1 *)(*(int *)((int)pppPVar20 + 0x60) + 0x1c4) = 1;\n  return pOVar11;\n}\n\n" comment comment comment comment (ERROR "Output_section * __thiscall\ngold::Layout::layout<32,_true>\n          (Layout *this,Sized_relobj_file<32,_true> *object,uint shndx,char *name,\n          Shdr<32,_true> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)" (binary_expression "Output_section * __thiscall\ngold::Layout::layout<32,_true>\n          (Layout *this,Sized_relobj_file<32,_true> *object,uint shndx,char *name,\n          Shdr<32,_true> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)" (binary_expression "Output_section * __thiscall\ngold::Layout::layout<32" (binary_expression "Output_section * __thiscall" identifier * identifier) (ERROR "gold::Layout::layout" identifier : : identifier : : identifier) < number_literal) (ERROR ",_true" , identifier) > (parenthesized_expression "(Layout *this,Sized_relobj_file<32,_true> *object,uint shndx,char *name,\n          Shdr<32,_true> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)" ( (comma_expression "Layout *this,Sized_relobj_file<32,_true> *object,uint shndx,char *name,\n          Shdr<32,_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<32,_true> *object,uint shndx,char *name,\n          Shdr<32,_true> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_true> *object,uint shndx,char *name,\n          Shdr<32,_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<32,_true> *shdr,uint sh_type,uint" identifier (comma_expression "shndx,char *name,\n          Shdr<32,_true> *shdr,uint sh_type,uint" identifier , (comma_expression "char *name,\n          Shdr<32,_true> *shdr,uint sh_type,uint" (binary_expression "char *name" identifier * identifier) , (comma_expression "Shdr<32,_true> *shdr,uint sh_type,uint" (binary_expression "Shdr<32" 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  int iVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  bool bVar8;\n  char cVar9;\n  char *pcVar10;\n  Output_section *pOVar11;\n  General_options *pGVar12;\n  Output_section_order OVar13;\n  uint uVar14;\n  size_t sVar15;\n  byte bVar16;\n  int iVar17;\n  Parameters **ppPVar18;\n  General_options *pGVar19;\n  Parameters ***pppPVar20;\n  Parameters ***pppPVar21;\n  byte *pbVar22;\n  __hashtable_alloc *p_Var23;\n  undefined1 *puVar24;\n  byte *pbVar25;\n  __node_gen_type _Var26;\n  bool bVar27;\n  undefined1 uVar28;\n  bool bVar29;\n  undefined1 uVar30;\n  byte bVar31;\n  off_t oVar32;\n  Layout *unaff_retaddr;\n  Parameters **local_5c;\n  Parameters **local_58;\n  __node_gen_type __node_gen;\n  Key name_key;\n  __hashtable_alloc local_30 [28];\n  undefined4 uStack_14;\n  \n  bVar31 = 0;\n  uStack_14 = 0xaec39;\n  *(undefined4 *)off = 0;\n  *(undefined4 *)((int)off + 4) = 0;\n  bVar8 = include_section<32,_true>(this,object,name,shdr);\n  pppPVar20 = &local_5c;\n  if (!bVar8) {\n    return (Output_section *)0x0;\n  }\n  pGVar12 = parameters->options_;\n  pppPVar21 = &local_5c;\n  if (pGVar12 == (General_options *)0x0) goto LAB_000af218;\n  if ((pGVar12->relocatable_).value == false) {\nLAB_000aeca9:\n    ppPVar18 = &parameters;\n    if ((pGVar12->text_unlikely_segment_).value != false) {\n      uVar28 = &local_5c < (undefined1 *)0x4;\n      uVar30 = &stack0x00000000 == (undefined1 *)0x60;\n      local_58 = &parameters;\n      (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);\n      iVar17 = 0xe;\n      local_58 = (Parameters **)0x28a53f;\n      p_Var23 = (__hashtable_alloc *)".text.unlikely";\n      _Var26 = __node_gen;\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        uVar28 = (byte)*p_Var23 < (byte)*_Var26._M_h;\n        uVar30 = *p_Var23 == *_Var26._M_h;\n        p_Var23 = p_Var23 + (uint)bVar31 * -2 + 1;\n        _Var26._M_h = _Var26._M_h + (uint)bVar31 * -2 + 1;\n      } while ((bool)uVar30);\n      pppPVar20 = (Parameters ***)&stack0xffffffa0;\n      if ((!(bool)uVar28 && !(bool)uVar30) == (bool)uVar28) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        uVar14 = *(uint *)(*(int *)name + 8);\n        uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000af2db;\n        uVar6 = uVar5 & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add\n                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar11 = get_output_section(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),\n                                     ORDER_INVALID,false);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        goto LAB_000aedb0;\n      }\n      ppPVar18 = local_5c;\n      if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        ppPVar18 = local_5c;\n      }\n    }\n    *(Parameters ***)((int)pppPVar20 + 4) = ppPVar18;\n    *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n    *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n    *(Key **)((int)pppPVar20 + -8) = &name_key;\n    *(int *)((int)pppPVar20 + -0xc) = *(int *)((int)pppPVar20 + 0x60) + 0x204;\n    *(undefined1 **)((int)pppPVar20 + -0x10) = (undefined1 *)((int)pppPVar20 + 0x1c);\n    *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaece7;\n    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             **)((int)pppPVar20 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar20 + -0xc));\n    iVar17 = *(int *)((int)pppPVar20 + 0x1c);\n    uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 8);\n    uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;\n    uVar6 = (uVar14 & 0xff00) << 8;\n    if (iVar17 == *(int *)((int)pppPVar20 + 0x60) + 0x208) {\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x18) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0x1c) = 0;\n      *(uint *)((int)pppPVar20 + -0x20) = uVar5 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x24) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x28) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n      *(undefined4 *)((int)pppPVar20 + -0x2c) = *(undefined4 *)((int)pppPVar20 + 100);\n      *(undefined4 *)((int)pppPVar20 + -0x30) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x34) = 0xaf062;\n      pOVar11 = choose_output_section\n                          (*(Layout **)((int)pppPVar20 + -0x30),*(Relobj **)((int)pppPVar20 + -0x2c)\n                           ,*(char **)((int)pppPVar20 + -0x28),*(Elf_Word *)((int)pppPVar20 + -0x24)\n                           ,*(Elf_Xword *)((int)pppPVar20 + -0x20),*(bool *)((int)pppPVar20 + -0x18)\n                           ,*(Output_section_order *)((int)pppPVar20 + -0x14),\n                           *(bool *)((int)pppPVar20 + -0x10),*(bool *)((int)pppPVar20 + -0xc),\n                           *(bool *)((int)pppPVar20 + -8));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (pOVar11 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      iVar1 = *(int *)(**(int **)((int)pppPVar20 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        pppPVar20[-1] = (Parameters **)layout<64,_false>;\n        Target::abi_pagesize((Target *)*pppPVar20);\n      }\n      uVar7 = uVar5 & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar7 = uVar5 & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar17 + 0x18);\n      *(int **)((int)pppPVar20 + 4) = *(int **)((int)pppPVar20 + 4);\n      *(Key **)((int)pppPVar20 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar20 + -0x10) = *(int *)((int)pppPVar20 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaed4e;\n      pcVar10 = Stringpool_template<char>::add\n                          (*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),\n                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),\n                           *(Key **)((int)pppPVar20 + -4));\n      *(undefined4 *)((int)pppPVar20 + -4) = 0;\n      *(undefined4 *)((int)pppPVar20 + -8) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(uint *)((int)pppPVar20 + -0x10) = uVar7 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 0x28);\n      *(char **)((int)pppPVar20 + -0x1c) = pcVar10;\n      *(undefined4 *)((int)pppPVar20 + -0x20) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaed6c;\n      pOVar11 = get_output_section(*(Layout **)((int)pppPVar20 + -0x20),\n                                   *(char **)((int)pppPVar20 + -0x1c),\n                                   *(Key *)((int)pppPVar20 + -0x18),\n                                   *(Elf_Word *)((int)pppPVar20 + -0x14),\n                                   *(Elf_Xword *)((int)pppPVar20 + -0x10),\n                                   *(Output_section_order *)((int)pppPVar20 + -8),\n                                   *(bool *)((int)pppPVar20 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (-1 < (char)pOVar11->field_0x92) {\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        iVar17 = *(int *)(iVar17 + 0x18);\n        uVar3 = *(undefined4 *)(iVar17 + 8);\n        *(undefined4 *)&pOVar11->extra_segment_flags_ = *(undefined4 *)(iVar17 + 4);\n        uVar4 = *(undefined4 *)(iVar17 + 0xc);\n        *(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar17 + 0x10);\n        *(undefined4 *)&pOVar11->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar11->segment_alignment_ + 4) = uVar3;\n      }\n    }\n  }\n  else {\n    uVar14 = shdr->p_->sh_flags;\n    uVar5 = (uVar14 & 0xff0000) >> 8;\n    if ((uVar5 & 0x200) == 0) goto LAB_000aeca9;\n    local_58 = &parameters;\n    pcVar10 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    pOVar11 = make_output_section(this,pcVar10,sh_type,\n                                  (ulonglong)\n                                  (uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |\n                                  uVar14 << 0x18),ORDER_INVALID,false);\n    pppPVar20 = &local_5c;\n    local_5c = local_58;\n  }\nLAB_000aedb0:\n  iVar17 = *(int *)(*(int *)((int)pppPVar20 + 0x60) + 4);\n  pGVar19 = (*local_5c)->options_;\n  *(int *)((int)pppPVar20 + 4) = iVar17;\n  bVar16 = *(byte *)(iVar17 + 0xac);\n  pGVar12 = (General_options *)(uint)bVar16;\n  pppPVar21 = pppPVar20;\n  if (bVar16 != 0) {\n    if (pGVar19 == (General_options *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }\n  if (pGVar19 == (General_options *)0x0) {\nLAB_000af218:\n    *(General_options **)((int)pppPVar21 + -4) = pGVar12;\n    *(char **)((int)pppPVar21 + -8) = "options";\n    *(undefined4 *)((int)pppPVar21 + -0xc) = 0x5c;\n    *(char **)((int)pppPVar21 + -0x10) = "../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)pppPVar21 + -0x14) = &UNK_000af22e;\n    do_gold_unreachable(*(char **)((int)pppPVar21 + -0x10),*(int *)((int)pppPVar21 + -0xc),\n                        *(char **)((int)pppPVar21 + -8));\n  }\n  bVar8 = false;\n  bVar29 = (pGVar19->relocatable_).value == false;\n  if (!bVar29) goto LAB_000af100;\n  iVar17 = 7;\n  pbVar22 = (byte *)".ctors.";\n  pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n  do {\n    if (iVar17 == 0) break;\n    iVar17 = iVar17 + -1;\n    bVar8 = *pbVar22 < *pbVar25;\n    bVar29 = *pbVar22 == *pbVar25;\n    pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n    pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n  } while (bVar29);\n  bVar27 = false;\n  bVar8 = (!bVar8 && !bVar29) == bVar8;\n  if (bVar8) {\nLAB_000aee98:\n    pOVar11->field_0x91 = pOVar11->field_0x91 | 8;\n    bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);\n    pGVar12 = (General_options *)(uint)bVar16;\n    if ((pGVar19->text_reorder_).value == false) {\nLAB_000af249:\n      if (bVar16 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar16 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar9 = (pGVar19->relocatable_).value;\n    if (*(char *)(*(int *)((int)pppPVar20 + 0x60) + 0x1cd) != '\0') goto LAB_000af114;\n    if ((bool)cVar9 == false) {\n      *(General_options **)((int)pppPVar20 + 0xc) = pGVar19;\n      puVar24 = special_ordering_of_input_section(char_const*)::text_section_sort;\n      *(char ***)((int)pppPVar20 + 8) = gdb_fast_lookup_sections;\n      pcVar10 = ".text.unlikely";\n      sVar15 = 0xe;\n      while( true ) {\n        *(size_t *)((int)pppPVar20 + -8) = sVar15;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf28d;\n        iVar17 = strncmp(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),\n                         *(size_t *)((int)pppPVar20 + -8));\n        if (iVar17 == 0) break;\n        puVar24 = (undefined1 *)((int)puVar24 + 4);\n        if (*(undefined4 **)((int)pppPVar20 + 8) == (undefined4 *)puVar24) goto LAB_000af11c;\n        pcVar10 = *(char **)puVar24;\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf2ac;\n        sVar15 = strlen(*(char **)((int)pppPVar20 + -0x10));\n      }\n      pGVar19 = *(General_options **)((int)pppPVar20 + 0xc);\n      pOVar11->field_0x91 = pOVar11->field_0x91 | 8;\n      bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);\n      pGVar12 = (General_options *)(uint)bVar16;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar17 = 7;\n    pbVar22 = (byte *)".dtors.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    bVar29 = false;\n    bVar8 = (!bVar27 && !bVar8) == bVar27;\n    if (bVar8) goto LAB_000aee98;\n    iVar17 = 0xc;\n    pbVar22 = (byte *)".init_array.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar29 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    bVar27 = false;\n    bVar8 = (!bVar29 && !bVar8) == bVar29;\n    if (bVar8) goto LAB_000aee98;\n    iVar17 = 0xc;\n    pbVar22 = (byte *)".fini_array.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    if ((!bVar27 && !bVar8) == bVar27) goto LAB_000aee98;\n    bVar8 = false;\n    bVar29 = (pGVar19->ctors_in_init_array_).value == false;\n    if (!bVar29) {\n      iVar17 = 7;\n      pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n      pbVar25 = (byte *)".ctors";\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar8 = *pbVar22 < *pbVar25;\n        bVar29 = *pbVar22 == *pbVar25;\n        pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n        pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n      } while (bVar29);\n      bVar27 = false;\n      bVar8 = (!bVar8 && !bVar29) == bVar8;\n      if (!bVar8) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".dtors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar27 = *pbVar22 < *pbVar25;\n          bVar8 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar27 && !bVar8) != bVar27) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if ((pGVar19->text_reorder_).value != false) goto LAB_000aeebd;\nLAB_000af10d:\n    cVar9 = (pGVar19->relocatable_).value;\nLAB_000af114:\n    if (cVar9 == '\0') {\nLAB_000af11c:\n      uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14);\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n      bVar8 = uVar14 < 4;\n      bVar29 = uVar14 == 4;\n      if (4 < uVar14) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".ctors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar8 = *pbVar22 < *pbVar25;\n          bVar29 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar29);\n        bVar27 = false;\n        bVar8 = (!bVar8 && !bVar29) == bVar8;\n        if (bVar8) {\nLAB_000af164:\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".init_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) goto LAB_000af1d0;\n        }\n        else {\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }\n        *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n        *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24);\n        *(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10);\n        *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3;\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                  ();\n        pGVar12 = (General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }\nLAB_000aeee0:\n  pGVar12 = (General_options *)0x0;\nLAB_000aeee2:\n  uVar14 = (uint)pOVar11->flags_;\n  *(General_options **)((int)pppPVar20 + -4) = pGVar12;\n  *(undefined4 *)((int)pppPVar20 + -8) = *(undefined4 *)((int)pppPVar20 + 0x78);\n  *(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x70);\n  *(undefined4 *)((int)pppPVar20 + -0x10) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n  *(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x68);\n  *(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 100);\n  *(undefined4 *)((int)pppPVar20 + -0x1c) = *(undefined4 *)((int)pppPVar20 + 0x60);\n  *(Output_section **)((int)pppPVar20 + -0x20) = pOVar11;\n  *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaef04;\n  oVar32 = Output_section::add_input_section<32,_true>\n                     (*(Output_section **)((int)pppPVar20 + -0x20),\n                      *(Layout **)((int)pppPVar20 + -0x1c),\n                      *(Sized_relobj_file<32,_true> **)((int)pppPVar20 + -0x18),\n                      *(uint *)((int)pppPVar20 + -0x14),*(char **)((int)pppPVar20 + -0x10),\n                      *(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4));\n  **(off_t **)((int)pppPVar20 + 0x80) = oVar32;\n  if (((uVar14 & 2) != 0) && (((uVar14 ^ (uint)pOVar11->flags_) & 5) != 0)) {\n    *(undefined4 *)((int)pppPVar20 + -8) = 0;\n    *(Output_section **)((int)pppPVar20 + -0xc) = pOVar11;\n    *(undefined4 *)((int)pppPVar20 + -0x10) = *(undefined4 *)((int)pppPVar20 + 0x60);\n    *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaef32;\n    OVar13 = default_section_order\n                       (*(Layout **)((int)pppPVar20 + -0x10),\n                        *(Output_section **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8));\n    pOVar11->order_ = OVar13;\n  }\n  *(undefined1 *)(*(int *)((int)pppPVar20 + 0x60) + 0x1c4) = 1;\n  return pOVar11;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "Output_section *pOVar11;" type_identifier (pointer_declarator "*pOVar11" * identifier) ;) (declaration "General_options *pGVar12;" type_identifier (pointer_declarator "*pGVar12" * identifier) ;) (declaration "Output_section_order OVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "size_t sVar15;" primitive_type identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "Parameters **ppPVar18;" type_identifier (pointer_declarator "**ppPVar18" * (pointer_declarator "*ppPVar18" * identifier)) ;) (declaration "General_options *pGVar19;" type_identifier (pointer_declarator "*pGVar19" * identifier) ;) (declaration "Parameters ***pppPVar20;" type_identifier (pointer_declarator "***pppPVar20" * (pointer_declarator "**pppPVar20" * (pointer_declarator "*pppPVar20" * identifier))) ;) (declaration "Parameters ***pppPVar21;" type_identifier (pointer_declarator "***pppPVar21" * (pointer_declarator "**pppPVar21" * (pointer_declarator "*pppPVar21" * identifier))) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "__hashtable_alloc *p_Var23;" type_identifier (pointer_declarator "*p_Var23" * identifier) ;) (declaration "undefined1 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "byte *pbVar25;" type_identifier (pointer_declarator "*pbVar25" * identifier) ;) (declaration "__node_gen_type _Var26;" type_identifier identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "undefined1 uVar28;" type_identifier identifier ;) (declaration "bool bVar29;" primitive_type identifier ;) (declaration "undefined1 uVar30;" type_identifier identifier ;) (declaration "byte bVar31;" type_identifier identifier ;) (declaration "off_t oVar32;" type_identifier identifier ;) (declaration "Layout *unaff_retaddr;" type_identifier (pointer_declarator "*unaff_retaddr" * identifier) ;) (declaration "Parameters **local_5c;" type_identifier (pointer_declarator "**local_5c" * (pointer_declarator "*local_5c" * identifier)) ;) (declaration "Parameters **local_58;" type_identifier (pointer_declarator "**local_58" * (pointer_declarator "*local_58" * identifier)) ;) (declaration "__node_gen_type __node_gen;" type_identifier identifier ;) (declaration "Key name_key;" type_identifier identifier ;) (declaration "__hashtable_alloc local_30 [28];" type_identifier (array_declarator "local_30 [28]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar31 = 0;" (assignment_expression "bVar31 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xaec39;" (assignment_expression "uStack_14 = 0xaec39" identifier = number_literal) ;) (expression_statement "*(undefined4 *)off = 0;" (assignment_expression "*(undefined4 *)off = 0" (pointer_expression "*(undefined4 *)off" * (cast_expression "(undefined4 *)off" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)((int)off + 4) = 0;" (assignment_expression "*(undefined4 *)((int)off + 4) = 0" (pointer_expression "*(undefined4 *)((int)off + 4)" * (cast_expression "(undefined4 *)((int)off + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)off + 4)" ( (binary_expression "(int)off + 4" (cast_expression "(int)off" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "bVar8 = include_section<32,_true>(this,object,name,shdr);" (comma_expression "bVar8 = include_section<32,_true>(this,object,name,shdr)" (assignment_expression "bVar8 = include_section<32" identifier = (binary_expression "include_section<32" 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))) )))) ;) (expression_statement "pppPVar20 = &local_5c;" (assignment_expression "pppPVar20 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (if_statement "if (!bVar8) {\n    return (Output_section *)0x0;\n  }" if (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! 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 "pGVar12 = parameters->options_;" (assignment_expression "pGVar12 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (expression_statement "pppPVar21 = &local_5c;" (assignment_expression "pppPVar21 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (if_statement "if (pGVar12 == (General_options *)0x0) goto LAB_000af218;" if (parenthesized_expression "(pGVar12 == (General_options *)0x0)" ( (binary_expression "pGVar12 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000af218;" goto statement_identifier ;)) (if_statement "if ((pGVar12->relocatable_).value == false) {\nLAB_000aeca9:\n    ppPVar18 = &parameters;\n    if ((pGVar12->text_unlikely_segment_).value != false) {\n      uVar28 = &local_5c < (undefined1 *)0x4;\n      uVar30 = &stack0x00000000 == (undefined1 *)0x60;\n      local_58 = &parameters;\n      (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);\n      iVar17 = 0xe;\n      local_58 = (Parameters **)0x28a53f;\n      p_Var23 = (__hashtable_alloc *)".text.unlikely";\n      _Var26 = __node_gen;\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        uVar28 = (byte)*p_Var23 < (byte)*_Var26._M_h;\n        uVar30 = *p_Var23 == *_Var26._M_h;\n        p_Var23 = p_Var23 + (uint)bVar31 * -2 + 1;\n        _Var26._M_h = _Var26._M_h + (uint)bVar31 * -2 + 1;\n      } while ((bool)uVar30);\n      pppPVar20 = (Parameters ***)&stack0xffffffa0;\n      if ((!(bool)uVar28 && !(bool)uVar30) == (bool)uVar28) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        uVar14 = *(uint *)(*(int *)name + 8);\n        uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000af2db;\n        uVar6 = uVar5 & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add\n                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar11 = get_output_section(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),\n                                     ORDER_INVALID,false);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        goto LAB_000aedb0;\n      }\n      ppPVar18 = local_5c;\n      if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        ppPVar18 = local_5c;\n      }\n    }\n    *(Parameters ***)((int)pppPVar20 + 4) = ppPVar18;\n    *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n    *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n    *(Key **)((int)pppPVar20 + -8) = &name_key;\n    *(int *)((int)pppPVar20 + -0xc) = *(int *)((int)pppPVar20 + 0x60) + 0x204;\n    *(undefined1 **)((int)pppPVar20 + -0x10) = (undefined1 *)((int)pppPVar20 + 0x1c);\n    *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaece7;\n    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             **)((int)pppPVar20 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar20 + -0xc));\n    iVar17 = *(int *)((int)pppPVar20 + 0x1c);\n    uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 8);\n    uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;\n    uVar6 = (uVar14 & 0xff00) << 8;\n    if (iVar17 == *(int *)((int)pppPVar20 + 0x60) + 0x208) {\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x18) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0x1c) = 0;\n      *(uint *)((int)pppPVar20 + -0x20) = uVar5 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x24) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x28) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n      *(undefined4 *)((int)pppPVar20 + -0x2c) = *(undefined4 *)((int)pppPVar20 + 100);\n      *(undefined4 *)((int)pppPVar20 + -0x30) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x34) = 0xaf062;\n      pOVar11 = choose_output_section\n                          (*(Layout **)((int)pppPVar20 + -0x30),*(Relobj **)((int)pppPVar20 + -0x2c)\n                           ,*(char **)((int)pppPVar20 + -0x28),*(Elf_Word *)((int)pppPVar20 + -0x24)\n                           ,*(Elf_Xword *)((int)pppPVar20 + -0x20),*(bool *)((int)pppPVar20 + -0x18)\n                           ,*(Output_section_order *)((int)pppPVar20 + -0x14),\n                           *(bool *)((int)pppPVar20 + -0x10),*(bool *)((int)pppPVar20 + -0xc),\n                           *(bool *)((int)pppPVar20 + -8));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (pOVar11 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      iVar1 = *(int *)(**(int **)((int)pppPVar20 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        pppPVar20[-1] = (Parameters **)layout<64,_false>;\n        Target::abi_pagesize((Target *)*pppPVar20);\n      }\n      uVar7 = uVar5 & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar7 = uVar5 & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar17 + 0x18);\n      *(int **)((int)pppPVar20 + 4) = *(int **)((int)pppPVar20 + 4);\n      *(Key **)((int)pppPVar20 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar20 + -0x10) = *(int *)((int)pppPVar20 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaed4e;\n      pcVar10 = Stringpool_template<char>::add\n                          (*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),\n                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),\n                           *(Key **)((int)pppPVar20 + -4));\n      *(undefined4 *)((int)pppPVar20 + -4) = 0;\n      *(undefined4 *)((int)pppPVar20 + -8) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(uint *)((int)pppPVar20 + -0x10) = uVar7 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 0x28);\n      *(char **)((int)pppPVar20 + -0x1c) = pcVar10;\n      *(undefined4 *)((int)pppPVar20 + -0x20) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaed6c;\n      pOVar11 = get_output_section(*(Layout **)((int)pppPVar20 + -0x20),\n                                   *(char **)((int)pppPVar20 + -0x1c),\n                                   *(Key *)((int)pppPVar20 + -0x18),\n                                   *(Elf_Word *)((int)pppPVar20 + -0x14),\n                                   *(Elf_Xword *)((int)pppPVar20 + -0x10),\n                                   *(Output_section_order *)((int)pppPVar20 + -8),\n                                   *(bool *)((int)pppPVar20 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (-1 < (char)pOVar11->field_0x92) {\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        iVar17 = *(int *)(iVar17 + 0x18);\n        uVar3 = *(undefined4 *)(iVar17 + 8);\n        *(undefined4 *)&pOVar11->extra_segment_flags_ = *(undefined4 *)(iVar17 + 4);\n        uVar4 = *(undefined4 *)(iVar17 + 0xc);\n        *(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar17 + 0x10);\n        *(undefined4 *)&pOVar11->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar11->segment_alignment_ + 4) = uVar3;\n      }\n    }\n  }\n  else {\n    uVar14 = shdr->p_->sh_flags;\n    uVar5 = (uVar14 & 0xff0000) >> 8;\n    if ((uVar5 & 0x200) == 0) goto LAB_000aeca9;\n    local_58 = &parameters;\n    pcVar10 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    pOVar11 = make_output_section(this,pcVar10,sh_type,\n                                  (ulonglong)\n                                  (uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |\n                                  uVar14 << 0x18),ORDER_INVALID,false);\n    pppPVar20 = &local_5c;\n    local_5c = local_58;\n  }" if (parenthesized_expression "((pGVar12->relocatable_).value == false)" ( (binary_expression "(pGVar12->relocatable_).value == false" (field_expression "(pGVar12->relocatable_).value" (parenthesized_expression "(pGVar12->relocatable_)" ( (field_expression "pGVar12->relocatable_" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\nLAB_000aeca9:\n    ppPVar18 = &parameters;\n    if ((pGVar12->text_unlikely_segment_).value != false) {\n      uVar28 = &local_5c < (undefined1 *)0x4;\n      uVar30 = &stack0x00000000 == (undefined1 *)0x60;\n      local_58 = &parameters;\n      (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);\n      iVar17 = 0xe;\n      local_58 = (Parameters **)0x28a53f;\n      p_Var23 = (__hashtable_alloc *)".text.unlikely";\n      _Var26 = __node_gen;\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        uVar28 = (byte)*p_Var23 < (byte)*_Var26._M_h;\n        uVar30 = *p_Var23 == *_Var26._M_h;\n        p_Var23 = p_Var23 + (uint)bVar31 * -2 + 1;\n        _Var26._M_h = _Var26._M_h + (uint)bVar31 * -2 + 1;\n      } while ((bool)uVar30);\n      pppPVar20 = (Parameters ***)&stack0xffffffa0;\n      if ((!(bool)uVar28 && !(bool)uVar30) == (bool)uVar28) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        uVar14 = *(uint *)(*(int *)name + 8);\n        uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000af2db;\n        uVar6 = uVar5 & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add\n                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar11 = get_output_section(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),\n                                     ORDER_INVALID,false);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        goto LAB_000aedb0;\n      }\n      ppPVar18 = local_5c;\n      if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        ppPVar18 = local_5c;\n      }\n    }\n    *(Parameters ***)((int)pppPVar20 + 4) = ppPVar18;\n    *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n    *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n    *(Key **)((int)pppPVar20 + -8) = &name_key;\n    *(int *)((int)pppPVar20 + -0xc) = *(int *)((int)pppPVar20 + 0x60) + 0x204;\n    *(undefined1 **)((int)pppPVar20 + -0x10) = (undefined1 *)((int)pppPVar20 + 0x1c);\n    *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaece7;\n    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             **)((int)pppPVar20 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar20 + -0xc));\n    iVar17 = *(int *)((int)pppPVar20 + 0x1c);\n    uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 8);\n    uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;\n    uVar6 = (uVar14 & 0xff00) << 8;\n    if (iVar17 == *(int *)((int)pppPVar20 + 0x60) + 0x208) {\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x18) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0x1c) = 0;\n      *(uint *)((int)pppPVar20 + -0x20) = uVar5 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x24) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x28) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n      *(undefined4 *)((int)pppPVar20 + -0x2c) = *(undefined4 *)((int)pppPVar20 + 100);\n      *(undefined4 *)((int)pppPVar20 + -0x30) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x34) = 0xaf062;\n      pOVar11 = choose_output_section\n                          (*(Layout **)((int)pppPVar20 + -0x30),*(Relobj **)((int)pppPVar20 + -0x2c)\n                           ,*(char **)((int)pppPVar20 + -0x28),*(Elf_Word *)((int)pppPVar20 + -0x24)\n                           ,*(Elf_Xword *)((int)pppPVar20 + -0x20),*(bool *)((int)pppPVar20 + -0x18)\n                           ,*(Output_section_order *)((int)pppPVar20 + -0x14),\n                           *(bool *)((int)pppPVar20 + -0x10),*(bool *)((int)pppPVar20 + -0xc),\n                           *(bool *)((int)pppPVar20 + -8));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (pOVar11 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      iVar1 = *(int *)(**(int **)((int)pppPVar20 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        pppPVar20[-1] = (Parameters **)layout<64,_false>;\n        Target::abi_pagesize((Target *)*pppPVar20);\n      }\n      uVar7 = uVar5 & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar7 = uVar5 & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar17 + 0x18);\n      *(int **)((int)pppPVar20 + 4) = *(int **)((int)pppPVar20 + 4);\n      *(Key **)((int)pppPVar20 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar20 + -0x10) = *(int *)((int)pppPVar20 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaed4e;\n      pcVar10 = Stringpool_template<char>::add\n                          (*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),\n                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),\n                           *(Key **)((int)pppPVar20 + -4));\n      *(undefined4 *)((int)pppPVar20 + -4) = 0;\n      *(undefined4 *)((int)pppPVar20 + -8) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(uint *)((int)pppPVar20 + -0x10) = uVar7 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 0x28);\n      *(char **)((int)pppPVar20 + -0x1c) = pcVar10;\n      *(undefined4 *)((int)pppPVar20 + -0x20) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaed6c;\n      pOVar11 = get_output_section(*(Layout **)((int)pppPVar20 + -0x20),\n                                   *(char **)((int)pppPVar20 + -0x1c),\n                                   *(Key *)((int)pppPVar20 + -0x18),\n                                   *(Elf_Word *)((int)pppPVar20 + -0x14),\n                                   *(Elf_Xword *)((int)pppPVar20 + -0x10),\n                                   *(Output_section_order *)((int)pppPVar20 + -8),\n                                   *(bool *)((int)pppPVar20 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (-1 < (char)pOVar11->field_0x92) {\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        iVar17 = *(int *)(iVar17 + 0x18);\n        uVar3 = *(undefined4 *)(iVar17 + 8);\n        *(undefined4 *)&pOVar11->extra_segment_flags_ = *(undefined4 *)(iVar17 + 4);\n        uVar4 = *(undefined4 *)(iVar17 + 0xc);\n        *(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar17 + 0x10);\n        *(undefined4 *)&pOVar11->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar11->segment_alignment_ + 4) = uVar3;\n      }\n    }\n  }" { (labeled_statement "LAB_000aeca9:\n    ppPVar18 = &parameters;" statement_identifier : (expression_statement "ppPVar18 = &parameters;" (assignment_expression "ppPVar18 = &parameters" identifier = (pointer_expression "&parameters" & identifier)) ;)) (if_statement "if ((pGVar12->text_unlikely_segment_).value != false) {\n      uVar28 = &local_5c < (undefined1 *)0x4;\n      uVar30 = &stack0x00000000 == (undefined1 *)0x60;\n      local_58 = &parameters;\n      (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);\n      iVar17 = 0xe;\n      local_58 = (Parameters **)0x28a53f;\n      p_Var23 = (__hashtable_alloc *)".text.unlikely";\n      _Var26 = __node_gen;\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        uVar28 = (byte)*p_Var23 < (byte)*_Var26._M_h;\n        uVar30 = *p_Var23 == *_Var26._M_h;\n        p_Var23 = p_Var23 + (uint)bVar31 * -2 + 1;\n        _Var26._M_h = _Var26._M_h + (uint)bVar31 * -2 + 1;\n      } while ((bool)uVar30);\n      pppPVar20 = (Parameters ***)&stack0xffffffa0;\n      if ((!(bool)uVar28 && !(bool)uVar30) == (bool)uVar28) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        uVar14 = *(uint *)(*(int *)name + 8);\n        uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000af2db;\n        uVar6 = uVar5 & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add\n                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar11 = get_output_section(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),\n                                     ORDER_INVALID,false);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        goto LAB_000aedb0;\n      }\n      ppPVar18 = local_5c;\n      if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        ppPVar18 = local_5c;\n      }\n    }" if (parenthesized_expression "((pGVar12->text_unlikely_segment_).value != false)" ( (binary_expression "(pGVar12->text_unlikely_segment_).value != false" (field_expression "(pGVar12->text_unlikely_segment_).value" (parenthesized_expression "(pGVar12->text_unlikely_segment_)" ( (field_expression "pGVar12->text_unlikely_segment_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n      uVar28 = &local_5c < (undefined1 *)0x4;\n      uVar30 = &stack0x00000000 == (undefined1 *)0x60;\n      local_58 = &parameters;\n      (*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);\n      iVar17 = 0xe;\n      local_58 = (Parameters **)0x28a53f;\n      p_Var23 = (__hashtable_alloc *)".text.unlikely";\n      _Var26 = __node_gen;\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        uVar28 = (byte)*p_Var23 < (byte)*_Var26._M_h;\n        uVar30 = *p_Var23 == *_Var26._M_h;\n        p_Var23 = p_Var23 + (uint)bVar31 * -2 + 1;\n        _Var26._M_h = _Var26._M_h + (uint)bVar31 * -2 + 1;\n      } while ((bool)uVar30);\n      pppPVar20 = (Parameters ***)&stack0xffffffa0;\n      if ((!(bool)uVar28 && !(bool)uVar30) == (bool)uVar28) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        uVar14 = *(uint *)(*(int *)name + 8);\n        uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000af2db;\n        uVar6 = uVar5 & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add\n                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar11 = get_output_section(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),\n                                     ORDER_INVALID,false);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        goto LAB_000aedb0;\n      }\n      ppPVar18 = local_5c;\n      if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        ppPVar18 = local_5c;\n      }\n    }" { (expression_statement "uVar28 = &local_5c < (undefined1 *)0x4;" (assignment_expression "uVar28 = &local_5c < (undefined1 *)0x4" identifier = (binary_expression "&local_5c < (undefined1 *)0x4" (pointer_expression "&local_5c" & identifier) < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar30 = &stack0x00000000 == (undefined1 *)0x60;" (assignment_expression "uVar30 = &stack0x00000000 == (undefined1 *)0x60" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x60" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x60" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_58 = &parameters;" (assignment_expression "local_58 = &parameters" identifier = (pointer_expression "&parameters" & identifier)) ;) (expression_statement "(*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);" (call_expression "(*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx)" (parenthesized_expression "(*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10])" ( (pointer_expression "*(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10]" * (subscript_expression "(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object[0x10]" (field_expression "(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object._vptr_Object" (field_expression "(object->super_Sized_relobj<32,_true>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_true>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_true>)" ( (comma_expression "object->super_Sized_relobj<32,_true" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(&name_key,object,shndx)" ( (pointer_expression "&name_key" & identifier) , identifier , identifier ))) ;) (expression_statement "iVar17 = 0xe;" (assignment_expression "iVar17 = 0xe" identifier = number_literal) ;) (expression_statement "local_58 = (Parameters **)0x28a53f;" (assignment_expression "local_58 = (Parameters **)0x28a53f" identifier = (cast_expression "(Parameters **)0x28a53f" ( (type_descriptor "Parameters **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "p_Var23 = (__hashtable_alloc *)".text.unlikely";" (assignment_expression "p_Var23 = (__hashtable_alloc *)".text.unlikely"" identifier = (cast_expression "(__hashtable_alloc *)".text.unlikely"" ( (type_descriptor "__hashtable_alloc *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".text.unlikely"" " string_content "))) ;) (expression_statement "_Var26 = __node_gen;" (assignment_expression "_Var26 = __node_gen" identifier = identifier) ;) (do_statement "do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        uVar28 = (byte)*p_Var23 < (byte)*_Var26._M_h;\n        uVar30 = *p_Var23 == *_Var26._M_h;\n        p_Var23 = p_Var23 + (uint)bVar31 * -2 + 1;\n        _Var26._M_h = _Var26._M_h + (uint)bVar31 * -2 + 1;\n      } while ((bool)uVar30);" do (compound_statement "{\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        uVar28 = (byte)*p_Var23 < (byte)*_Var26._M_h;\n        uVar30 = *p_Var23 == *_Var26._M_h;\n        p_Var23 = p_Var23 + (uint)bVar31 * -2 + 1;\n        _Var26._M_h = _Var26._M_h + (uint)bVar31 * -2 + 1;\n      }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "uVar28 = (byte)*p_Var23 < (byte)*_Var26._M_h;" (assignment_expression "uVar28 = (byte)*p_Var23 < (byte)*_Var26._M_h" identifier = (binary_expression "(byte)*p_Var23 < (byte)*_Var26._M_h" (binary_expression "(byte)*p_Var23" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*_Var26._M_h" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var26._M_h" identifier . field_identifier)))) ;) (expression_statement "uVar30 = *p_Var23 == *_Var26._M_h;" (assignment_expression "uVar30 = *p_Var23 == *_Var26._M_h" identifier = (binary_expression "*p_Var23 == *_Var26._M_h" (pointer_expression "*p_Var23" * identifier) == (pointer_expression "*_Var26._M_h" * (field_expression "_Var26._M_h" identifier . field_identifier)))) ;) (expression_statement "p_Var23 = p_Var23 + (uint)bVar31 * -2 + 1;" (assignment_expression "p_Var23 = p_Var23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "p_Var23 + (uint)bVar31 * -2 + 1" (binary_expression "p_Var23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var26._M_h = _Var26._M_h + (uint)bVar31 * -2 + 1;" (assignment_expression "_Var26._M_h = _Var26._M_h + (uint)bVar31 * -2 + 1" (field_expression "_Var26._M_h" identifier . field_identifier) = (binary_expression "_Var26._M_h + (uint)bVar31 * -2 + 1" (binary_expression "_Var26._M_h + (uint)bVar31 * -2" (field_expression "_Var26._M_h" identifier . field_identifier) + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar30)" ( (cast_expression "(bool)uVar30" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "pppPVar20 = (Parameters ***)&stack0xffffffa0;" (assignment_expression "pppPVar20 = (Parameters ***)&stack0xffffffa0" identifier = (cast_expression "(Parameters ***)&stack0xffffffa0" ( (type_descriptor "Parameters ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&stack0xffffffa0" & identifier))) ;) (if_statement "if ((!(bool)uVar28 && !(bool)uVar30) == (bool)uVar28) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        uVar14 = *(uint *)(*(int *)name + 8);\n        uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000af2db;\n        uVar6 = uVar5 & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add\n                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar11 = get_output_section(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),\n                                     ORDER_INVALID,false);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        goto LAB_000aedb0;\n      }" if (parenthesized_expression "((!(bool)uVar28 && !(bool)uVar30) == (bool)uVar28)" ( (binary_expression "(!(bool)uVar28 && !(bool)uVar30) == (bool)uVar28" (parenthesized_expression "(!(bool)uVar28 && !(bool)uVar30)" ( (binary_expression "!(bool)uVar28 && !(bool)uVar30" (unary_expression "!(bool)uVar28" ! (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar30" ! (cast_expression "(bool)uVar30" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar28" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        uVar14 = *(uint *)(*(int *)name + 8);\n        uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000af2db;\n        uVar6 = uVar5 & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }\n        pcVar10 = Stringpool_template<char>::add\n                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar11 = get_output_section(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),\n                                     ORDER_INVALID,false);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        goto LAB_000aedb0;\n      }" { (if_statement "if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }" if (parenthesized_expression "(__node_gen._M_h != local_30)" ( (binary_expression "__node_gen._M_h != local_30" (field_expression "__node_gen._M_h" identifier . field_identifier) != identifier) )) (compound_statement "{\n          operator_delete(__node_gen._M_h);\n        }" { (expression_statement "operator_delete(__node_gen._M_h);" (call_expression "operator_delete(__node_gen._M_h)" identifier (argument_list "(__node_gen._M_h)" ( (field_expression "__node_gen._M_h" identifier . field_identifier) ))) ;) })) (expression_statement "pppPVar20 = (Parameters ***)&stack0xffffffa0;" (assignment_expression "pppPVar20 = (Parameters ***)&stack0xffffffa0" identifier = (cast_expression "(Parameters ***)&stack0xffffffa0" ( (type_descriptor "Parameters ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&stack0xffffffa0" & identifier))) ;) (expression_statement "uVar14 = *(uint *)(*(int *)name + 8);" (assignment_expression "uVar14 = *(uint *)(*(int *)name + 8)" identifier = (pointer_expression "*(uint *)(*(int *)name + 8)" * (cast_expression "(uint *)(*(int *)name + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)name + 8)" ( (binary_expression "*(int *)name + 8" (pointer_expression "*(int *)name" * (cast_expression "(int *)name" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (expression_statement "uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;" (assignment_expression "uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8" identifier = (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8" (binary_expression "uVar14 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar14 & 0xff0000) >> 8" (parenthesized_expression "(uVar14 & 0xff0000)" ( (binary_expression "uVar14 & 0xff0000" identifier & number_literal) )) >> number_literal))) ;) (if_statement "if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000af2db;" if (parenthesized_expression "((*local_5c)->options_ == (General_options *)0x0)" ( (binary_expression "(*local_5c)->options_ == (General_options *)0x0" (field_expression "(*local_5c)->options_" (parenthesized_expression "(*local_5c)" ( (pointer_expression "*local_5c" * identifier) )) -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000af2db;" goto statement_identifier ;)) (expression_statement "uVar6 = uVar5 & 0xfffff50f;" (assignment_expression "uVar6 = uVar5 & 0xfffff50f" identifier = (binary_expression "uVar5 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar6 = uVar5 & 0xfffff58f;\n        }" if (parenthesized_expression "(((*local_5c)->options_->relocatable_).value != false)" ( (binary_expression "((*local_5c)->options_->relocatable_).value != false" (field_expression "((*local_5c)->options_->relocatable_).value" (parenthesized_expression "((*local_5c)->options_->relocatable_)" ( (field_expression "(*local_5c)->options_->relocatable_" (field_expression "(*local_5c)->options_" (parenthesized_expression "(*local_5c)" ( (pointer_expression "*local_5c" * 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                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);" (assignment_expression "pcVar10 = Stringpool_template<char>::add\n                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key)" identifier = (binary_expression "Stringpool_template<char>::add\n                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key)" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add\n                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key)" identifier (argument_list "(&unaff_retaddr->namepool_,(char *)local_58,true,&name_key)" ( (pointer_expression "&unaff_retaddr->namepool_" & (field_expression "unaff_retaddr->namepool_" identifier -> field_identifier)) , (cast_expression "(char *)local_58" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , true , (pointer_expression "&name_key" & identifier) ))))) ;) (expression_statement "pOVar11 = get_output_section(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),\n                                     ORDER_INVALID,false);" (assignment_expression "pOVar11 = get_output_section(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),\n                                     ORDER_INVALID,false)" identifier = (call_expression "get_output_section(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),\n                                     ORDER_INVALID,false)" identifier (argument_list "(unaff_retaddr,pcVar10,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                     (ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18),\n                                     ORDER_INVALID,false)" ( identifier , identifier , (cast_expression "(Key)__node_gen._M_h" ( (type_descriptor "Key" type_identifier) ) (field_expression "__node_gen._M_h" identifier . field_identifier)) , (cast_expression "(Elf_Word)shdr" ( (type_descriptor "Elf_Word" type_identifier) ) identifier) , (call_expression "(ulonglong)(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18)" ( (binary_expression "uVar6 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18" (binary_expression "uVar6 | (uVar14 & 0xff00) << 8" identifier | (binary_expression "(uVar14 & 0xff00) << 8" (parenthesized_expression "(uVar14 & 0xff00)" ( (binary_expression "uVar14 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar14 << 0x18" identifier << number_literal)) ))) , identifier , false )))) ;) (expression_statement "pppPVar20 = (Parameters ***)&stack0xffffffa0;" (assignment_expression "pppPVar20 = (Parameters ***)&stack0xffffffa0" identifier = (cast_expression "(Parameters ***)&stack0xffffffa0" ( (type_descriptor "Parameters ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&stack0xffffffa0" & identifier))) ;) (expression_statement "pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;" (assignment_expression "pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80" (field_expression "pOVar11->field_0x92" identifier -> field_identifier) = (binary_expression "pOVar11->field_0x92 | 0x80" (field_expression "pOVar11->field_0x92" identifier -> field_identifier) | number_literal)) ;) (goto_statement "goto LAB_000aedb0;" goto statement_identifier ;) })) (expression_statement "ppPVar18 = local_5c;" (assignment_expression "ppPVar18 = local_5c" identifier = identifier) ;) (if_statement "if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        ppPVar18 = local_5c;\n      }" if (parenthesized_expression "(__node_gen._M_h != local_30)" ( (binary_expression "__node_gen._M_h != local_30" (field_expression "__node_gen._M_h" identifier . field_identifier) != identifier) )) (compound_statement "{\n        operator_delete(__node_gen._M_h);\n        pppPVar20 = (Parameters ***)&stack0xffffffa0;\n        ppPVar18 = local_5c;\n      }" { (expression_statement "operator_delete(__node_gen._M_h);" (call_expression "operator_delete(__node_gen._M_h)" identifier (argument_list "(__node_gen._M_h)" ( (field_expression "__node_gen._M_h" identifier . field_identifier) ))) ;) (expression_statement "pppPVar20 = (Parameters ***)&stack0xffffffa0;" (assignment_expression "pppPVar20 = (Parameters ***)&stack0xffffffa0" identifier = (cast_expression "(Parameters ***)&stack0xffffffa0" ( (type_descriptor "Parameters ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "&stack0xffffffa0" & identifier))) ;) (expression_statement "ppPVar18 = local_5c;" (assignment_expression "ppPVar18 = local_5c" identifier = identifier) ;) })) })) (expression_statement "*(Parameters ***)((int)pppPVar20 + 4) = ppPVar18;" (assignment_expression "*(Parameters ***)((int)pppPVar20 + 4) = ppPVar18" (pointer_expression "*(Parameters ***)((int)pppPVar20 + 4)" * (cast_expression "(Parameters ***)((int)pppPVar20 + 4)" ( (type_descriptor "Parameters ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppPVar20 + 4)" ( (binary_expression "(int)pppPVar20 + 4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x28)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x28)" ( (binary_expression "(int)pppPVar20 + 0x28" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 100)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 100)" ( (binary_expression "(int)pppPVar20 + 100" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x2c)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x2c)" ( (binary_expression "(int)pppPVar20 + 0x2c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x68)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x68)" ( (binary_expression "(int)pppPVar20 + 0x68" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(Key **)((int)pppPVar20 + -8) = &name_key;" (assignment_expression "*(Key **)((int)pppPVar20 + -8) = &name_key" (pointer_expression "*(Key **)((int)pppPVar20 + -8)" * (cast_expression "(Key **)((int)pppPVar20 + -8)" ( (type_descriptor "Key **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&name_key" & identifier)) ;) (expression_statement "*(int *)((int)pppPVar20 + -0xc) = *(int *)((int)pppPVar20 + 0x60) + 0x204;" (assignment_expression "*(int *)((int)pppPVar20 + -0xc) = *(int *)((int)pppPVar20 + 0x60) + 0x204" (pointer_expression "*(int *)((int)pppPVar20 + -0xc)" * (cast_expression "(int *)((int)pppPVar20 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)pppPVar20 + 0x60) + 0x204" (pointer_expression "*(int *)((int)pppPVar20 + 0x60)" * (cast_expression "(int *)((int)pppPVar20 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x60)" ( (binary_expression "(int)pppPVar20 + 0x60" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined1 **)((int)pppPVar20 + -0x10) = (undefined1 *)((int)pppPVar20 + 0x1c);" (assignment_expression "*(undefined1 **)((int)pppPVar20 + -0x10) = (undefined1 *)((int)pppPVar20 + 0x1c)" (pointer_expression "*(undefined1 **)((int)pppPVar20 + -0x10)" * (cast_expression "(undefined1 **)((int)pppPVar20 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)pppPVar20 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x1c)" ( (binary_expression "(int)pppPVar20 + 0x1c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x14) = 0xaece7;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x14) = 0xaece7" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x14)" ( (binary_expression "(int)pppPVar20 + -0x14" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (ERROR "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::" (comma_expression "std::\n    _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>,_std" identifier (ERROR "::\n    _Rb_tree<std::pair<const_gold::Relobj*,_unsigned_int>" : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : identifier * , 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) : : (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             **)((int)pppPVar20 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar20 + -0xc));" (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             **)((int)pppPVar20 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar20 + -0xc))" (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             **)((int)pppPVar20 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar20 + -0xc))" 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             **)((int)pppPVar20 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar20 + -0xc))" ( (pointer_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             **)((int)pppPVar20 + -0x10)" * (call_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             **)((int)pppPVar20 + -0x10)" (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             **)" ( (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::" (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 : :) (binary_expression "Unique_segment_info*>_>_>\n             **" (binary_expression "Unique_segment_info*>_>_" (binary_expression "Unique_segment_info*>_" identifier * (ERROR ">" >) identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar20 + -0xc)" * (call_expression "(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar20 + -0xc)" (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 "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "iVar17 = *(int *)((int)pppPVar20 + 0x1c);" (assignment_expression "iVar17 = *(int *)((int)pppPVar20 + 0x1c)" identifier = (pointer_expression "*(int *)((int)pppPVar20 + 0x1c)" * (cast_expression "(int *)((int)pppPVar20 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x1c)" ( (binary_expression "(int)pppPVar20 + 0x1c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 8);" (assignment_expression "uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 8)" identifier = (pointer_expression "*(uint *)(**(int **)((int)pppPVar20 + 0x70) + 8)" * (cast_expression "(uint *)(**(int **)((int)pppPVar20 + 0x70) + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)((int)pppPVar20 + 0x70) + 8)" ( (binary_expression "**(int **)((int)pppPVar20 + 0x70) + 8" (pointer_expression "**(int **)((int)pppPVar20 + 0x70)" * (pointer_expression "*(int **)((int)pppPVar20 + 0x70)" * (cast_expression "(int **)((int)pppPVar20 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x70)" ( (binary_expression "(int)pppPVar20 + 0x70" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8;" (assignment_expression "uVar5 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8" identifier = (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8" (binary_expression "uVar14 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar14 & 0xff0000) >> 8" (parenthesized_expression "(uVar14 & 0xff0000)" ( (binary_expression "uVar14 & 0xff0000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "uVar6 = (uVar14 & 0xff00) << 8;" (assignment_expression "uVar6 = (uVar14 & 0xff00) << 8" identifier = (binary_expression "(uVar14 & 0xff00) << 8" (parenthesized_expression "(uVar14 & 0xff00)" ( (binary_expression "uVar14 & 0xff00" identifier & number_literal) )) << number_literal)) ;) (if_statement "if (iVar17 == *(int *)((int)pppPVar20 + 0x60) + 0x208) {\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x18) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0x1c) = 0;\n      *(uint *)((int)pppPVar20 + -0x20) = uVar5 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x24) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x28) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n      *(undefined4 *)((int)pppPVar20 + -0x2c) = *(undefined4 *)((int)pppPVar20 + 100);\n      *(undefined4 *)((int)pppPVar20 + -0x30) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x34) = 0xaf062;\n      pOVar11 = choose_output_section\n                          (*(Layout **)((int)pppPVar20 + -0x30),*(Relobj **)((int)pppPVar20 + -0x2c)\n                           ,*(char **)((int)pppPVar20 + -0x28),*(Elf_Word *)((int)pppPVar20 + -0x24)\n                           ,*(Elf_Xword *)((int)pppPVar20 + -0x20),*(bool *)((int)pppPVar20 + -0x18)\n                           ,*(Output_section_order *)((int)pppPVar20 + -0x14),\n                           *(bool *)((int)pppPVar20 + -0x10),*(bool *)((int)pppPVar20 + -0xc),\n                           *(bool *)((int)pppPVar20 + -8));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (pOVar11 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      iVar1 = *(int *)(**(int **)((int)pppPVar20 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        pppPVar20[-1] = (Parameters **)layout<64,_false>;\n        Target::abi_pagesize((Target *)*pppPVar20);\n      }\n      uVar7 = uVar5 & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar7 = uVar5 & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar17 + 0x18);\n      *(int **)((int)pppPVar20 + 4) = *(int **)((int)pppPVar20 + 4);\n      *(Key **)((int)pppPVar20 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar20 + -0x10) = *(int *)((int)pppPVar20 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaed4e;\n      pcVar10 = Stringpool_template<char>::add\n                          (*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),\n                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),\n                           *(Key **)((int)pppPVar20 + -4));\n      *(undefined4 *)((int)pppPVar20 + -4) = 0;\n      *(undefined4 *)((int)pppPVar20 + -8) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(uint *)((int)pppPVar20 + -0x10) = uVar7 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 0x28);\n      *(char **)((int)pppPVar20 + -0x1c) = pcVar10;\n      *(undefined4 *)((int)pppPVar20 + -0x20) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaed6c;\n      pOVar11 = get_output_section(*(Layout **)((int)pppPVar20 + -0x20),\n                                   *(char **)((int)pppPVar20 + -0x1c),\n                                   *(Key *)((int)pppPVar20 + -0x18),\n                                   *(Elf_Word *)((int)pppPVar20 + -0x14),\n                                   *(Elf_Xword *)((int)pppPVar20 + -0x10),\n                                   *(Output_section_order *)((int)pppPVar20 + -8),\n                                   *(bool *)((int)pppPVar20 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (-1 < (char)pOVar11->field_0x92) {\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        iVar17 = *(int *)(iVar17 + 0x18);\n        uVar3 = *(undefined4 *)(iVar17 + 8);\n        *(undefined4 *)&pOVar11->extra_segment_flags_ = *(undefined4 *)(iVar17 + 4);\n        uVar4 = *(undefined4 *)(iVar17 + 0xc);\n        *(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar17 + 0x10);\n        *(undefined4 *)&pOVar11->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar11->segment_alignment_ + 4) = uVar3;\n      }\n    }" if (parenthesized_expression "(iVar17 == *(int *)((int)pppPVar20 + 0x60) + 0x208)" ( (binary_expression "iVar17 == *(int *)((int)pppPVar20 + 0x60) + 0x208" identifier == (binary_expression "*(int *)((int)pppPVar20 + 0x60) + 0x208" (pointer_expression "*(int *)((int)pppPVar20 + 0x60)" * (cast_expression "(int *)((int)pppPVar20 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x60)" ( (binary_expression "(int)pppPVar20 + 0x60" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) )) (compound_statement "{\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0x18) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0x1c) = 0;\n      *(uint *)((int)pppPVar20 + -0x20) = uVar5 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x24) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x28) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n      *(undefined4 *)((int)pppPVar20 + -0x2c) = *(undefined4 *)((int)pppPVar20 + 100);\n      *(undefined4 *)((int)pppPVar20 + -0x30) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x34) = 0xaf062;\n      pOVar11 = choose_output_section\n                          (*(Layout **)((int)pppPVar20 + -0x30),*(Relobj **)((int)pppPVar20 + -0x2c)\n                           ,*(char **)((int)pppPVar20 + -0x28),*(Elf_Word *)((int)pppPVar20 + -0x24)\n                           ,*(Elf_Xword *)((int)pppPVar20 + -0x20),*(bool *)((int)pppPVar20 + -0x18)\n                           ,*(Output_section_order *)((int)pppPVar20 + -0x14),\n                           *(bool *)((int)pppPVar20 + -0x10),*(bool *)((int)pppPVar20 + -0xc),\n                           *(bool *)((int)pppPVar20 + -8));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (pOVar11 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }" { (expression_statement "*(undefined4 *)((int)pppPVar20 + -8) = 1;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -8) = 1" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -8)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x10)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x14) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x14)" ( (binary_expression "(int)pppPVar20 + -0x14" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x18) = 1;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x18) = 1" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x18)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x18)" ( (binary_expression "(int)pppPVar20 + -0x18" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x1c)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x1c)" ( (binary_expression "(int)pppPVar20 + -0x1c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((int)pppPVar20 + -0x20) = uVar5 | uVar6 | uVar14 << 0x18;" (assignment_expression "*(uint *)((int)pppPVar20 + -0x20) = uVar5 | uVar6 | uVar14 << 0x18" (pointer_expression "*(uint *)((int)pppPVar20 + -0x20)" * (cast_expression "(uint *)((int)pppPVar20 + -0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x20)" ( (binary_expression "(int)pppPVar20 + -0x20" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar5 | uVar6 | uVar14 << 0x18" (binary_expression "uVar5 | uVar6" identifier | identifier) | (binary_expression "uVar14 << 0x18" identifier << number_literal))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x24) = *(undefined4 *)((int)pppPVar20 + 0x74);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x24) = *(undefined4 *)((int)pppPVar20 + 0x74)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x24)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x24)" ( (binary_expression "(int)pppPVar20 + -0x24" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x74)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x74)" ( (binary_expression "(int)pppPVar20 + 0x74" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x28) = *(undefined4 *)((int)pppPVar20 + 0x6c);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x28) = *(undefined4 *)((int)pppPVar20 + 0x6c)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x28)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x28)" ( (binary_expression "(int)pppPVar20 + -0x28" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x6c)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x2c) = *(undefined4 *)((int)pppPVar20 + 100);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x2c) = *(undefined4 *)((int)pppPVar20 + 100)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x2c)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x2c)" ( (binary_expression "(int)pppPVar20 + -0x2c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 100)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 100)" ( (binary_expression "(int)pppPVar20 + 100" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x30) = *(undefined4 *)((int)pppPVar20 + 0x60);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x30) = *(undefined4 *)((int)pppPVar20 + 0x60)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x30)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x30)" ( (binary_expression "(int)pppPVar20 + -0x30" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x60)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x60)" ( (binary_expression "(int)pppPVar20 + 0x60" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x34) = 0xaf062;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x34) = 0xaf062" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x34)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x34)" ( (binary_expression "(int)pppPVar20 + -0x34" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar11 = choose_output_section\n                          (*(Layout **)((int)pppPVar20 + -0x30),*(Relobj **)((int)pppPVar20 + -0x2c)\n                           ,*(char **)((int)pppPVar20 + -0x28),*(Elf_Word *)((int)pppPVar20 + -0x24)\n                           ,*(Elf_Xword *)((int)pppPVar20 + -0x20),*(bool *)((int)pppPVar20 + -0x18)\n                           ,*(Output_section_order *)((int)pppPVar20 + -0x14),\n                           *(bool *)((int)pppPVar20 + -0x10),*(bool *)((int)pppPVar20 + -0xc),\n                           *(bool *)((int)pppPVar20 + -8));" (assignment_expression "pOVar11 = choose_output_section\n                          (*(Layout **)((int)pppPVar20 + -0x30),*(Relobj **)((int)pppPVar20 + -0x2c)\n                           ,*(char **)((int)pppPVar20 + -0x28),*(Elf_Word *)((int)pppPVar20 + -0x24)\n                           ,*(Elf_Xword *)((int)pppPVar20 + -0x20),*(bool *)((int)pppPVar20 + -0x18)\n                           ,*(Output_section_order *)((int)pppPVar20 + -0x14),\n                           *(bool *)((int)pppPVar20 + -0x10),*(bool *)((int)pppPVar20 + -0xc),\n                           *(bool *)((int)pppPVar20 + -8))" identifier = (call_expression "choose_output_section\n                          (*(Layout **)((int)pppPVar20 + -0x30),*(Relobj **)((int)pppPVar20 + -0x2c)\n                           ,*(char **)((int)pppPVar20 + -0x28),*(Elf_Word *)((int)pppPVar20 + -0x24)\n                           ,*(Elf_Xword *)((int)pppPVar20 + -0x20),*(bool *)((int)pppPVar20 + -0x18)\n                           ,*(Output_section_order *)((int)pppPVar20 + -0x14),\n                           *(bool *)((int)pppPVar20 + -0x10),*(bool *)((int)pppPVar20 + -0xc),\n                           *(bool *)((int)pppPVar20 + -8))" identifier (argument_list "(*(Layout **)((int)pppPVar20 + -0x30),*(Relobj **)((int)pppPVar20 + -0x2c)\n                           ,*(char **)((int)pppPVar20 + -0x28),*(Elf_Word *)((int)pppPVar20 + -0x24)\n                           ,*(Elf_Xword *)((int)pppPVar20 + -0x20),*(bool *)((int)pppPVar20 + -0x18)\n                           ,*(Output_section_order *)((int)pppPVar20 + -0x14),\n                           *(bool *)((int)pppPVar20 + -0x10),*(bool *)((int)pppPVar20 + -0xc),\n                           *(bool *)((int)pppPVar20 + -8))" ( (pointer_expression "*(Layout **)((int)pppPVar20 + -0x30)" * (cast_expression "(Layout **)((int)pppPVar20 + -0x30)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x30)" ( (binary_expression "(int)pppPVar20 + -0x30" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Relobj **)((int)pppPVar20 + -0x2c)" * (cast_expression "(Relobj **)((int)pppPVar20 + -0x2c)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x2c)" ( (binary_expression "(int)pppPVar20 + -0x2c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)pppPVar20 + -0x28)" * (cast_expression "(char **)((int)pppPVar20 + -0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x28)" ( (binary_expression "(int)pppPVar20 + -0x28" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Elf_Word *)((int)pppPVar20 + -0x24)" * (cast_expression "(Elf_Word *)((int)pppPVar20 + -0x24)" ( (type_descriptor "Elf_Word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x24)" ( (binary_expression "(int)pppPVar20 + -0x24" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Elf_Xword *)((int)pppPVar20 + -0x20)" * (cast_expression "(Elf_Xword *)((int)pppPVar20 + -0x20)" ( (type_descriptor "Elf_Xword *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x20)" ( (binary_expression "(int)pppPVar20 + -0x20" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar20 + -0x18)" * (cast_expression "(bool *)((int)pppPVar20 + -0x18)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x18)" ( (binary_expression "(int)pppPVar20 + -0x18" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Output_section_order *)((int)pppPVar20 + -0x14)" * (cast_expression "(Output_section_order *)((int)pppPVar20 + -0x14)" ( (type_descriptor "Output_section_order *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x14)" ( (binary_expression "(int)pppPVar20 + -0x14" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar20 + -0x10)" * (cast_expression "(bool *)((int)pppPVar20 + -0x10)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar20 + -0xc)" * (cast_expression "(bool *)((int)pppPVar20 + -0xc)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar20 + -8)" * (cast_expression "(bool *)((int)pppPVar20 + -8)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "local_5c = *(Parameters ***)((int)pppPVar20 + 4);" (assignment_expression "local_5c = *(Parameters ***)((int)pppPVar20 + 4)" identifier = (pointer_expression "*(Parameters ***)((int)pppPVar20 + 4)" * (cast_expression "(Parameters ***)((int)pppPVar20 + 4)" ( (type_descriptor "Parameters ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppPVar20 + 4)" ( (binary_expression "(int)pppPVar20 + 4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (pOVar11 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }" if (parenthesized_expression "(pOVar11 == (Output_section *)0x0)" ( (binary_expression "pOVar11 == (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_clause "else {\n      iVar1 = *(int *)(**(int **)((int)pppPVar20 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        pppPVar20[-1] = (Parameters **)layout<64,_false>;\n        Target::abi_pagesize((Target *)*pppPVar20);\n      }\n      uVar7 = uVar5 & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar7 = uVar5 & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar17 + 0x18);\n      *(int **)((int)pppPVar20 + 4) = *(int **)((int)pppPVar20 + 4);\n      *(Key **)((int)pppPVar20 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar20 + -0x10) = *(int *)((int)pppPVar20 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaed4e;\n      pcVar10 = Stringpool_template<char>::add\n                          (*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),\n                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),\n                           *(Key **)((int)pppPVar20 + -4));\n      *(undefined4 *)((int)pppPVar20 + -4) = 0;\n      *(undefined4 *)((int)pppPVar20 + -8) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(uint *)((int)pppPVar20 + -0x10) = uVar7 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 0x28);\n      *(char **)((int)pppPVar20 + -0x1c) = pcVar10;\n      *(undefined4 *)((int)pppPVar20 + -0x20) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaed6c;\n      pOVar11 = get_output_section(*(Layout **)((int)pppPVar20 + -0x20),\n                                   *(char **)((int)pppPVar20 + -0x1c),\n                                   *(Key *)((int)pppPVar20 + -0x18),\n                                   *(Elf_Word *)((int)pppPVar20 + -0x14),\n                                   *(Elf_Xword *)((int)pppPVar20 + -0x10),\n                                   *(Output_section_order *)((int)pppPVar20 + -8),\n                                   *(bool *)((int)pppPVar20 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (-1 < (char)pOVar11->field_0x92) {\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        iVar17 = *(int *)(iVar17 + 0x18);\n        uVar3 = *(undefined4 *)(iVar17 + 8);\n        *(undefined4 *)&pOVar11->extra_segment_flags_ = *(undefined4 *)(iVar17 + 4);\n        uVar4 = *(undefined4 *)(iVar17 + 0xc);\n        *(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar17 + 0x10);\n        *(undefined4 *)&pOVar11->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar11->segment_alignment_ + 4) = uVar3;\n      }\n    }" else (compound_statement "{\n      iVar1 = *(int *)(**(int **)((int)pppPVar20 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        pppPVar20[-1] = (Parameters **)layout<64,_false>;\n        Target::abi_pagesize((Target *)*pppPVar20);\n      }\n      uVar7 = uVar5 & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar7 = uVar5 & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar17 + 0x18);\n      *(int **)((int)pppPVar20 + 4) = *(int **)((int)pppPVar20 + 4);\n      *(Key **)((int)pppPVar20 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar20 + -8) = 1;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar20 + -0x10) = *(int *)((int)pppPVar20 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaed4e;\n      pcVar10 = Stringpool_template<char>::add\n                          (*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),\n                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),\n                           *(Key **)((int)pppPVar20 + -4));\n      *(undefined4 *)((int)pppPVar20 + -4) = 0;\n      *(undefined4 *)((int)pppPVar20 + -8) = 0;\n      *(undefined4 *)((int)pppPVar20 + -0xc) = 0;\n      *(uint *)((int)pppPVar20 + -0x10) = uVar7 | uVar6 | uVar14 << 0x18;\n      *(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x74);\n      *(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 0x28);\n      *(char **)((int)pppPVar20 + -0x1c) = pcVar10;\n      *(undefined4 *)((int)pppPVar20 + -0x20) = *(undefined4 *)((int)pppPVar20 + 0x60);\n      *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaed6c;\n      pOVar11 = get_output_section(*(Layout **)((int)pppPVar20 + -0x20),\n                                   *(char **)((int)pppPVar20 + -0x1c),\n                                   *(Key *)((int)pppPVar20 + -0x18),\n                                   *(Elf_Word *)((int)pppPVar20 + -0x14),\n                                   *(Elf_Xword *)((int)pppPVar20 + -0x10),\n                                   *(Output_section_order *)((int)pppPVar20 + -8),\n                                   *(bool *)((int)pppPVar20 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar20 + 4);\n      if (-1 < (char)pOVar11->field_0x92) {\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        iVar17 = *(int *)(iVar17 + 0x18);\n        uVar3 = *(undefined4 *)(iVar17 + 8);\n        *(undefined4 *)&pOVar11->extra_segment_flags_ = *(undefined4 *)(iVar17 + 4);\n        uVar4 = *(undefined4 *)(iVar17 + 0xc);\n        *(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar17 + 0x10);\n        *(undefined4 *)&pOVar11->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar11->segment_alignment_ + 4) = uVar3;\n      }\n    }" { (expression_statement "iVar1 = *(int *)(**(int **)((int)pppPVar20 + 4) + 8);" (assignment_expression "iVar1 = *(int *)(**(int **)((int)pppPVar20 + 4) + 8)" identifier = (pointer_expression "*(int *)(**(int **)((int)pppPVar20 + 4) + 8)" * (cast_expression "(int *)(**(int **)((int)pppPVar20 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)((int)pppPVar20 + 4) + 8)" ( (binary_expression "**(int **)((int)pppPVar20 + 4) + 8" (pointer_expression "**(int **)((int)pppPVar20 + 4)" * (pointer_expression "*(int **)((int)pppPVar20 + 4)" * (cast_expression "(int **)((int)pppPVar20 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 4)" ( (binary_expression "(int)pppPVar20 + 4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) {\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        pppPVar20[-1] = (Parameters **)layout<64,_false>;\n        Target::abi_pagesize((Target *)*pppPVar20);\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        pppPVar20[-1] = (Parameters **)layout<64,_false>;\n        Target::abi_pagesize((Target *)*pppPVar20);\n      }" { (labeled_statement "LAB_000af2db:\n                    /* WARNING: Subroutine does not return */\n        pppPVar20[-1] = (Parameters **)layout<64,_false>;" statement_identifier : comment (expression_statement "pppPVar20[-1] = (Parameters **)layout<64,_false>;" (comma_expression "pppPVar20[-1] = (Parameters **)layout<64,_false" (assignment_expression "pppPVar20[-1] = (Parameters **)layout<64" (subscript_expression "pppPVar20[-1]" identifier [ number_literal ]) = (binary_expression "(Parameters **)layout<64" (cast_expression "(Parameters **)layout" ( (type_descriptor "Parameters **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) < number_literal)) , identifier) (ERROR ">" >) ;)) (labeled_statement "Target::abi_pagesize((Target *)*pppPVar20);" statement_identifier : (ERROR ":" :) (expression_statement "abi_pagesize((Target *)*pppPVar20);" (call_expression "abi_pagesize((Target *)*pppPVar20)" identifier (argument_list "((Target *)*pppPVar20)" ( (cast_expression "(Target *)*pppPVar20" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pppPVar20" * identifier)) ))) ;)) })) (expression_statement "uVar7 = uVar5 & 0xfffff50f;" (assignment_expression "uVar7 = uVar5 & 0xfffff50f" identifier = (binary_expression "uVar5 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar7 = uVar5 & 0xfffff58f;\n      }" if (parenthesized_expression "(*(char *)(iVar1 + 0x318d) != '\0')" ( (binary_expression "*(char *)(iVar1 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x318d)" * (cast_expression "(char *)(iVar1 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x318d)" ( (binary_expression "iVar1 + 0x318d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar7 = uVar5 & 0xfffff58f;\n      }" { (expression_statement "uVar7 = uVar5 & 0xfffff58f;" (assignment_expression "uVar7 = uVar5 & 0xfffff58f" identifier = (binary_expression "uVar5 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "puVar2 = *(undefined4 **)(iVar17 + 0x18);" (assignment_expression "puVar2 = *(undefined4 **)(iVar17 + 0x18)" identifier = (pointer_expression "*(undefined4 **)(iVar17 + 0x18)" * (cast_expression "(undefined4 **)(iVar17 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(int **)((int)pppPVar20 + 4) = *(int **)((int)pppPVar20 + 4);" (assignment_expression "*(int **)((int)pppPVar20 + 4) = *(int **)((int)pppPVar20 + 4)" (pointer_expression "*(int **)((int)pppPVar20 + 4)" * (cast_expression "(int **)((int)pppPVar20 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 4)" ( (binary_expression "(int)pppPVar20 + 4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(int **)((int)pppPVar20 + 4)" * (cast_expression "(int **)((int)pppPVar20 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 4)" ( (binary_expression "(int)pppPVar20 + 4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(Key **)((int)pppPVar20 + -4) = &name_key;" (assignment_expression "*(Key **)((int)pppPVar20 + -4) = &name_key" (pointer_expression "*(Key **)((int)pppPVar20 + -4)" * (cast_expression "(Key **)((int)pppPVar20 + -4)" ( (type_descriptor "Key **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -4)" ( (binary_expression "(int)pppPVar20 + -4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&name_key" & identifier)) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -8) = 1;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -8) = 1" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -8)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0xc) = *puVar2;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0xc) = *puVar2" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*(int *)((int)pppPVar20 + -0x10) = *(int *)((int)pppPVar20 + 0x60) + 8;" (assignment_expression "*(int *)((int)pppPVar20 + -0x10) = *(int *)((int)pppPVar20 + 0x60) + 8" (pointer_expression "*(int *)((int)pppPVar20 + -0x10)" * (cast_expression "(int *)((int)pppPVar20 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)pppPVar20 + 0x60) + 8" (pointer_expression "*(int *)((int)pppPVar20 + 0x60)" * (cast_expression "(int *)((int)pppPVar20 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x60)" ( (binary_expression "(int)pppPVar20 + 0x60" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x14) = 0xaed4e;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x14) = 0xaed4e" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x14)" ( (binary_expression "(int)pppPVar20 + -0x14" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pcVar10 = Stringpool_template<char>::add\n                          (*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),\n                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),\n                           *(Key **)((int)pppPVar20 + -4));" (assignment_expression "pcVar10 = Stringpool_template<char>::add\n                          (*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),\n                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),\n                           *(Key **)((int)pppPVar20 + -4))" identifier = (binary_expression "Stringpool_template<char>::add\n                          (*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),\n                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),\n                           *(Key **)((int)pppPVar20 + -4))" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add\n                          (*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),\n                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),\n                           *(Key **)((int)pppPVar20 + -4))" identifier (argument_list "(*(Stringpool_template<char> **)((int)pppPVar20 + -0x10),\n                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),\n                           *(Key **)((int)pppPVar20 + -4))" ( (pointer_expression "*(Stringpool_template<char> **)((int)pppPVar20 + -0x10)" * (call_expression "(Stringpool_template<char> **)((int)pppPVar20 + -0x10)" (parenthesized_expression "(Stringpool_template<char> **)" ( (binary_expression "Stringpool_template<char> **" (binary_expression "Stringpool_template<char" identifier < identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)pppPVar20 + -0xc)" * (cast_expression "(char **)((int)pppPVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar20 + -8)" * (cast_expression "(bool *)((int)pppPVar20 + -8)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Key **)((int)pppPVar20 + -4)" * (cast_expression "(Key **)((int)pppPVar20 + -4)" ( (type_descriptor "Key **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -4)" ( (binary_expression "(int)pppPVar20 + -4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -4) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -4)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -4)" ( (binary_expression "(int)pppPVar20 + -4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -8) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -8)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0xc) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0xc) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((int)pppPVar20 + -0x10) = uVar7 | uVar6 | uVar14 << 0x18;" (assignment_expression "*(uint *)((int)pppPVar20 + -0x10) = uVar7 | uVar6 | uVar14 << 0x18" (pointer_expression "*(uint *)((int)pppPVar20 + -0x10)" * (cast_expression "(uint *)((int)pppPVar20 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar7 | uVar6 | uVar14 << 0x18" (binary_expression "uVar7 | uVar6" identifier | identifier) | (binary_expression "uVar14 << 0x18" identifier << number_literal))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x74);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x74)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x14)" ( (binary_expression "(int)pppPVar20 + -0x14" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x74)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x74)" ( (binary_expression "(int)pppPVar20 + 0x74" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 0x28);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 0x28)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x18)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x18)" ( (binary_expression "(int)pppPVar20 + -0x18" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x28)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x28)" ( (binary_expression "(int)pppPVar20 + 0x28" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char **)((int)pppPVar20 + -0x1c) = pcVar10;" (assignment_expression "*(char **)((int)pppPVar20 + -0x1c) = pcVar10" (pointer_expression "*(char **)((int)pppPVar20 + -0x1c)" * (cast_expression "(char **)((int)pppPVar20 + -0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x1c)" ( (binary_expression "(int)pppPVar20 + -0x1c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x20) = *(undefined4 *)((int)pppPVar20 + 0x60);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x20) = *(undefined4 *)((int)pppPVar20 + 0x60)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x20)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x20)" ( (binary_expression "(int)pppPVar20 + -0x20" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x60)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x60)" ( (binary_expression "(int)pppPVar20 + 0x60" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x24) = 0xaed6c;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x24) = 0xaed6c" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x24)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x24)" ( (binary_expression "(int)pppPVar20 + -0x24" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar11 = get_output_section(*(Layout **)((int)pppPVar20 + -0x20),\n                                   *(char **)((int)pppPVar20 + -0x1c),\n                                   *(Key *)((int)pppPVar20 + -0x18),\n                                   *(Elf_Word *)((int)pppPVar20 + -0x14),\n                                   *(Elf_Xword *)((int)pppPVar20 + -0x10),\n                                   *(Output_section_order *)((int)pppPVar20 + -8),\n                                   *(bool *)((int)pppPVar20 + -4));" (assignment_expression "pOVar11 = get_output_section(*(Layout **)((int)pppPVar20 + -0x20),\n                                   *(char **)((int)pppPVar20 + -0x1c),\n                                   *(Key *)((int)pppPVar20 + -0x18),\n                                   *(Elf_Word *)((int)pppPVar20 + -0x14),\n                                   *(Elf_Xword *)((int)pppPVar20 + -0x10),\n                                   *(Output_section_order *)((int)pppPVar20 + -8),\n                                   *(bool *)((int)pppPVar20 + -4))" identifier = (call_expression "get_output_section(*(Layout **)((int)pppPVar20 + -0x20),\n                                   *(char **)((int)pppPVar20 + -0x1c),\n                                   *(Key *)((int)pppPVar20 + -0x18),\n                                   *(Elf_Word *)((int)pppPVar20 + -0x14),\n                                   *(Elf_Xword *)((int)pppPVar20 + -0x10),\n                                   *(Output_section_order *)((int)pppPVar20 + -8),\n                                   *(bool *)((int)pppPVar20 + -4))" identifier (argument_list "(*(Layout **)((int)pppPVar20 + -0x20),\n                                   *(char **)((int)pppPVar20 + -0x1c),\n                                   *(Key *)((int)pppPVar20 + -0x18),\n                                   *(Elf_Word *)((int)pppPVar20 + -0x14),\n                                   *(Elf_Xword *)((int)pppPVar20 + -0x10),\n                                   *(Output_section_order *)((int)pppPVar20 + -8),\n                                   *(bool *)((int)pppPVar20 + -4))" ( (pointer_expression "*(Layout **)((int)pppPVar20 + -0x20)" * (cast_expression "(Layout **)((int)pppPVar20 + -0x20)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x20)" ( (binary_expression "(int)pppPVar20 + -0x20" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)pppPVar20 + -0x1c)" * (cast_expression "(char **)((int)pppPVar20 + -0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x1c)" ( (binary_expression "(int)pppPVar20 + -0x1c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Key *)((int)pppPVar20 + -0x18)" * (cast_expression "(Key *)((int)pppPVar20 + -0x18)" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x18)" ( (binary_expression "(int)pppPVar20 + -0x18" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Elf_Word *)((int)pppPVar20 + -0x14)" * (cast_expression "(Elf_Word *)((int)pppPVar20 + -0x14)" ( (type_descriptor "Elf_Word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x14)" ( (binary_expression "(int)pppPVar20 + -0x14" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Elf_Xword *)((int)pppPVar20 + -0x10)" * (cast_expression "(Elf_Xword *)((int)pppPVar20 + -0x10)" ( (type_descriptor "Elf_Xword *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Output_section_order *)((int)pppPVar20 + -8)" * (cast_expression "(Output_section_order *)((int)pppPVar20 + -8)" ( (type_descriptor "Output_section_order *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar20 + -4)" * (cast_expression "(bool *)((int)pppPVar20 + -4)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -4)" ( (binary_expression "(int)pppPVar20 + -4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "local_5c = *(Parameters ***)((int)pppPVar20 + 4);" (assignment_expression "local_5c = *(Parameters ***)((int)pppPVar20 + 4)" identifier = (pointer_expression "*(Parameters ***)((int)pppPVar20 + 4)" * (cast_expression "(Parameters ***)((int)pppPVar20 + 4)" ( (type_descriptor "Parameters ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppPVar20 + 4)" ( (binary_expression "(int)pppPVar20 + 4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (-1 < (char)pOVar11->field_0x92) {\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        iVar17 = *(int *)(iVar17 + 0x18);\n        uVar3 = *(undefined4 *)(iVar17 + 8);\n        *(undefined4 *)&pOVar11->extra_segment_flags_ = *(undefined4 *)(iVar17 + 4);\n        uVar4 = *(undefined4 *)(iVar17 + 0xc);\n        *(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar17 + 0x10);\n        *(undefined4 *)&pOVar11->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar11->segment_alignment_ + 4) = uVar3;\n      }" if (parenthesized_expression "(-1 < (char)pOVar11->field_0x92)" ( (binary_expression "-1 < (char)pOVar11->field_0x92" number_literal < (cast_expression "(char)pOVar11->field_0x92" ( (type_descriptor "char" primitive_type) ) (field_expression "pOVar11->field_0x92" identifier -> field_identifier))) )) (compound_statement "{\n        pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;\n        iVar17 = *(int *)(iVar17 + 0x18);\n        uVar3 = *(undefined4 *)(iVar17 + 8);\n        *(undefined4 *)&pOVar11->extra_segment_flags_ = *(undefined4 *)(iVar17 + 4);\n        uVar4 = *(undefined4 *)(iVar17 + 0xc);\n        *(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar17 + 0x10);\n        *(undefined4 *)&pOVar11->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar11->segment_alignment_ + 4) = uVar3;\n      }" { (expression_statement "pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80;" (assignment_expression "pOVar11->field_0x92 = pOVar11->field_0x92 | 0x80" (field_expression "pOVar11->field_0x92" identifier -> field_identifier) = (binary_expression "pOVar11->field_0x92 | 0x80" (field_expression "pOVar11->field_0x92" identifier -> field_identifier) | number_literal)) ;) (expression_statement "iVar17 = *(int *)(iVar17 + 0x18);" (assignment_expression "iVar17 = *(int *)(iVar17 + 0x18)" identifier = (pointer_expression "*(int *)(iVar17 + 0x18)" * (cast_expression "(int *)(iVar17 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar17 + 8);" (assignment_expression "uVar3 = *(undefined4 *)(iVar17 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar17 + 8)" * (cast_expression "(undefined4 *)(iVar17 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&pOVar11->extra_segment_flags_ = *(undefined4 *)(iVar17 + 4);" (assignment_expression "*(undefined4 *)&pOVar11->extra_segment_flags_ = *(undefined4 *)(iVar17 + 4)" (pointer_expression "*(undefined4 *)&pOVar11->extra_segment_flags_" * (cast_expression "(undefined4 *)&pOVar11->extra_segment_flags_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar11->extra_segment_flags_" & (field_expression "pOVar11->extra_segment_flags_" identifier -> field_identifier)))) = (pointer_expression "*(undefined4 *)(iVar17 + 4)" * (cast_expression "(undefined4 *)(iVar17 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 4)" ( (binary_expression "iVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar17 + 0xc);" (assignment_expression "uVar4 = *(undefined4 *)(iVar17 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar17 + 0xc)" * (cast_expression "(undefined4 *)(iVar17 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4) = uVar3;" (assignment_expression "*(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4) = uVar3" (pointer_expression "*(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar11->extra_segment_flags_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar11->extra_segment_flags_ + 4)" ( (binary_expression "(int)&pOVar11->extra_segment_flags_ + 4" (cast_expression "(int)&pOVar11->extra_segment_flags_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar11->extra_segment_flags_" & (field_expression "pOVar11->extra_segment_flags_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar17 + 0x10);" (assignment_expression "uVar3 = *(undefined4 *)(iVar17 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar17 + 0x10)" * (cast_expression "(undefined4 *)(iVar17 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&pOVar11->segment_alignment_ = uVar4;" (assignment_expression "*(undefined4 *)&pOVar11->segment_alignment_ = uVar4" (pointer_expression "*(undefined4 *)&pOVar11->segment_alignment_" * (cast_expression "(undefined4 *)&pOVar11->segment_alignment_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar11->segment_alignment_" & (field_expression "pOVar11->segment_alignment_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&pOVar11->segment_alignment_ + 4) = uVar3;" (assignment_expression "*(undefined4 *)((int)&pOVar11->segment_alignment_ + 4) = uVar3" (pointer_expression "*(undefined4 *)((int)&pOVar11->segment_alignment_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar11->segment_alignment_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar11->segment_alignment_ + 4)" ( (binary_expression "(int)&pOVar11->segment_alignment_ + 4" (cast_expression "(int)&pOVar11->segment_alignment_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar11->segment_alignment_" & (field_expression "pOVar11->segment_alignment_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) }))) }) (else_clause "else {\n    uVar14 = shdr->p_->sh_flags;\n    uVar5 = (uVar14 & 0xff0000) >> 8;\n    if ((uVar5 & 0x200) == 0) goto LAB_000aeca9;\n    local_58 = &parameters;\n    pcVar10 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    pOVar11 = make_output_section(this,pcVar10,sh_type,\n                                  (ulonglong)\n                                  (uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |\n                                  uVar14 << 0x18),ORDER_INVALID,false);\n    pppPVar20 = &local_5c;\n    local_5c = local_58;\n  }" else (compound_statement "{\n    uVar14 = shdr->p_->sh_flags;\n    uVar5 = (uVar14 & 0xff0000) >> 8;\n    if ((uVar5 & 0x200) == 0) goto LAB_000aeca9;\n    local_58 = &parameters;\n    pcVar10 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    pOVar11 = make_output_section(this,pcVar10,sh_type,\n                                  (ulonglong)\n                                  (uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |\n                                  uVar14 << 0x18),ORDER_INVALID,false);\n    pppPVar20 = &local_5c;\n    local_5c = local_58;\n  }" { (expression_statement "uVar14 = shdr->p_->sh_flags;" (assignment_expression "uVar14 = shdr->p_->sh_flags" identifier = (field_expression "shdr->p_->sh_flags" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "uVar5 = (uVar14 & 0xff0000) >> 8;" (assignment_expression "uVar5 = (uVar14 & 0xff0000) >> 8" identifier = (binary_expression "(uVar14 & 0xff0000) >> 8" (parenthesized_expression "(uVar14 & 0xff0000)" ( (binary_expression "uVar14 & 0xff0000" identifier & number_literal) )) >> number_literal)) ;) (if_statement "if ((uVar5 & 0x200) == 0) goto LAB_000aeca9;" if (parenthesized_expression "((uVar5 & 0x200) == 0)" ( (binary_expression "(uVar5 & 0x200) == 0" (parenthesized_expression "(uVar5 & 0x200)" ( (binary_expression "uVar5 & 0x200" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000aeca9;" goto statement_identifier ;)) (expression_statement "local_58 = &parameters;" (assignment_expression "local_58 = &parameters" identifier = (pointer_expression "&parameters" & identifier)) ;) (expression_statement "pcVar10 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);" (assignment_expression "pcVar10 = 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 "pOVar11 = make_output_section(this,pcVar10,sh_type,\n                                  (ulonglong)\n                                  (uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |\n                                  uVar14 << 0x18),ORDER_INVALID,false);" (assignment_expression "pOVar11 = make_output_section(this,pcVar10,sh_type,\n                                  (ulonglong)\n                                  (uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |\n                                  uVar14 << 0x18),ORDER_INVALID,false)" identifier = (call_expression "make_output_section(this,pcVar10,sh_type,\n                                  (ulonglong)\n                                  (uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |\n                                  uVar14 << 0x18),ORDER_INVALID,false)" identifier (argument_list "(this,pcVar10,sh_type,\n                                  (ulonglong)\n                                  (uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |\n                                  uVar14 << 0x18),ORDER_INVALID,false)" ( identifier , identifier , identifier , (call_expression "(ulonglong)\n                                  (uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |\n                                  uVar14 << 0x18)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |\n                                  uVar14 << 0x18)" ( (binary_expression "uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8 |\n                                  uVar14 << 0x18" (binary_expression "uVar14 >> 0x18 | uVar5 & 0xfffff7ff | (uVar14 & 0xff00) << 8" (binary_expression "uVar14 >> 0x18 | uVar5 & 0xfffff7ff" (binary_expression "uVar14 >> 0x18" identifier >> number_literal) | (binary_expression "uVar5 & 0xfffff7ff" identifier & number_literal)) | (binary_expression "(uVar14 & 0xff00) << 8" (parenthesized_expression "(uVar14 & 0xff00)" ( (binary_expression "uVar14 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar14 << 0x18" identifier << number_literal)) ))) , identifier , false )))) ;) (expression_statement "pppPVar20 = &local_5c;" (assignment_expression "pppPVar20 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "local_5c = local_58;" (assignment_expression "local_5c = local_58" identifier = identifier) ;) }))) (labeled_statement "LAB_000aedb0:\n  iVar17 = *(int *)(*(int *)((int)pppPVar20 + 0x60) + 4);" statement_identifier : (expression_statement "iVar17 = *(int *)(*(int *)((int)pppPVar20 + 0x60) + 4);" (assignment_expression "iVar17 = *(int *)(*(int *)((int)pppPVar20 + 0x60) + 4)" identifier = (pointer_expression "*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4)" * (cast_expression "(int *)(*(int *)((int)pppPVar20 + 0x60) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppPVar20 + 0x60) + 4)" ( (binary_expression "*(int *)((int)pppPVar20 + 0x60) + 4" (pointer_expression "*(int *)((int)pppPVar20 + 0x60)" * (cast_expression "(int *)((int)pppPVar20 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x60)" ( (binary_expression "(int)pppPVar20 + 0x60" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;)) (expression_statement "pGVar19 = (*local_5c)->options_;" (assignment_expression "pGVar19 = (*local_5c)->options_" identifier = (field_expression "(*local_5c)->options_" (parenthesized_expression "(*local_5c)" ( (pointer_expression "*local_5c" * identifier) )) -> field_identifier)) ;) (expression_statement "*(int *)((int)pppPVar20 + 4) = iVar17;" (assignment_expression "*(int *)((int)pppPVar20 + 4) = iVar17" (pointer_expression "*(int *)((int)pppPVar20 + 4)" * (cast_expression "(int *)((int)pppPVar20 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 4)" ( (binary_expression "(int)pppPVar20 + 4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "bVar16 = *(byte *)(iVar17 + 0xac);" (assignment_expression "bVar16 = *(byte *)(iVar17 + 0xac)" identifier = (pointer_expression "*(byte *)(iVar17 + 0xac)" * (cast_expression "(byte *)(iVar17 + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xac)" ( (binary_expression "iVar17 + 0xac" identifier + number_literal) ))))) ;) (expression_statement "pGVar12 = (General_options *)(uint)bVar16;" (assignment_expression "pGVar12 = (General_options *)(uint)bVar16" identifier = (cast_expression "(General_options *)(uint)bVar16" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppPVar21 = pppPVar20;" (assignment_expression "pppPVar21 = pppPVar20" identifier = identifier) ;) (if_statement "if (bVar16 != 0) {\n    if (pGVar19 == (General_options *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }" if (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) )) (compound_statement "{\n    if (pGVar19 == (General_options *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }" { (if_statement "if (pGVar19 == (General_options *)0x0) goto LAB_000af218;" if (parenthesized_expression "(pGVar19 == (General_options *)0x0)" ( (binary_expression "pGVar19 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000af218;" goto statement_identifier ;)) (goto_statement "goto LAB_000aeee2;" goto statement_identifier ;) })) (if_statement "if (pGVar19 == (General_options *)0x0) {\nLAB_000af218:\n    *(General_options **)((int)pppPVar21 + -4) = pGVar12;\n    *(char **)((int)pppPVar21 + -8) = "options";\n    *(undefined4 *)((int)pppPVar21 + -0xc) = 0x5c;\n    *(char **)((int)pppPVar21 + -0x10) = "../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)pppPVar21 + -0x14) = &UNK_000af22e;\n    do_gold_unreachable(*(char **)((int)pppPVar21 + -0x10),*(int *)((int)pppPVar21 + -0xc),\n                        *(char **)((int)pppPVar21 + -8));\n  }" if (parenthesized_expression "(pGVar19 == (General_options *)0x0)" ( (binary_expression "pGVar19 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000af218:\n    *(General_options **)((int)pppPVar21 + -4) = pGVar12;\n    *(char **)((int)pppPVar21 + -8) = "options";\n    *(undefined4 *)((int)pppPVar21 + -0xc) = 0x5c;\n    *(char **)((int)pppPVar21 + -0x10) = "../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)pppPVar21 + -0x14) = &UNK_000af22e;\n    do_gold_unreachable(*(char **)((int)pppPVar21 + -0x10),*(int *)((int)pppPVar21 + -0xc),\n                        *(char **)((int)pppPVar21 + -8));\n  }" { (labeled_statement "LAB_000af218:\n    *(General_options **)((int)pppPVar21 + -4) = pGVar12;" statement_identifier : (expression_statement "*(General_options **)((int)pppPVar21 + -4) = pGVar12;" (assignment_expression "*(General_options **)((int)pppPVar21 + -4) = pGVar12" (pointer_expression "*(General_options **)((int)pppPVar21 + -4)" * (cast_expression "(General_options **)((int)pppPVar21 + -4)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar21 + -4)" ( (binary_expression "(int)pppPVar21 + -4" (cast_expression "(int)pppPVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(char **)((int)pppPVar21 + -8) = "options";" (assignment_expression "*(char **)((int)pppPVar21 + -8) = "options"" (pointer_expression "*(char **)((int)pppPVar21 + -8)" * (cast_expression "(char **)((int)pppPVar21 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar21 + -8)" ( (binary_expression "(int)pppPVar21 + -8" (cast_expression "(int)pppPVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""options"" " string_content ")) ;) (expression_statement "*(undefined4 *)((int)pppPVar21 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)pppPVar21 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)pppPVar21 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar21 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar21 + -0xc)" ( (binary_expression "(int)pppPVar21 + -0xc" (cast_expression "(int)pppPVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)((int)pppPVar21 + -0x10) = "../../gold/parameters.h";" (assignment_expression "*(char **)((int)pppPVar21 + -0x10) = "../../gold/parameters.h"" (pointer_expression "*(char **)((int)pppPVar21 + -0x10)" * (cast_expression "(char **)((int)pppPVar21 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar21 + -0x10)" ( (binary_expression "(int)pppPVar21 + -0x10" (cast_expression "(int)pppPVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""../../gold/parameters.h"" " string_content ")) ;) comment (expression_statement "*(undefined **)((int)pppPVar21 + -0x14) = &UNK_000af22e;" (assignment_expression "*(undefined **)((int)pppPVar21 + -0x14) = &UNK_000af22e" (pointer_expression "*(undefined **)((int)pppPVar21 + -0x14)" * (cast_expression "(undefined **)((int)pppPVar21 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar21 + -0x14)" ( (binary_expression "(int)pppPVar21 + -0x14" (cast_expression "(int)pppPVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_000af22e" & identifier)) ;) (expression_statement "do_gold_unreachable(*(char **)((int)pppPVar21 + -0x10),*(int *)((int)pppPVar21 + -0xc),\n                        *(char **)((int)pppPVar21 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)pppPVar21 + -0x10),*(int *)((int)pppPVar21 + -0xc),\n                        *(char **)((int)pppPVar21 + -8))" identifier (argument_list "(*(char **)((int)pppPVar21 + -0x10),*(int *)((int)pppPVar21 + -0xc),\n                        *(char **)((int)pppPVar21 + -8))" ( (pointer_expression "*(char **)((int)pppPVar21 + -0x10)" * (cast_expression "(char **)((int)pppPVar21 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar21 + -0x10)" ( (binary_expression "(int)pppPVar21 + -0x10" (cast_expression "(int)pppPVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)pppPVar21 + -0xc)" * (cast_expression "(int *)((int)pppPVar21 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar21 + -0xc)" ( (binary_expression "(int)pppPVar21 + -0xc" (cast_expression "(int)pppPVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)pppPVar21 + -8)" * (cast_expression "(char **)((int)pppPVar21 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar21 + -8)" ( (binary_expression "(int)pppPVar21 + -8" (cast_expression "(int)pppPVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (expression_statement "bVar29 = (pGVar19->relocatable_).value == false;" (assignment_expression "bVar29 = (pGVar19->relocatable_).value == false" identifier = (binary_expression "(pGVar19->relocatable_).value == false" (field_expression "(pGVar19->relocatable_).value" (parenthesized_expression "(pGVar19->relocatable_)" ( (field_expression "pGVar19->relocatable_" identifier -> field_identifier) )) . field_identifier) == false)) ;) (if_statement "if (!bVar29) goto LAB_000af100;" if (parenthesized_expression "(!bVar29)" ( (unary_expression "!bVar29" ! identifier) )) (goto_statement "goto LAB_000af100;" goto statement_identifier ;)) (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)".ctors.";" (assignment_expression "pbVar22 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);" (assignment_expression "pbVar25 = *(byte **)((int)pppPVar20 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar20 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar20 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n    if (iVar17 == 0) break;\n    iVar17 = iVar17 + -1;\n    bVar8 = *pbVar22 < *pbVar25;\n    bVar29 = *pbVar22 == *pbVar25;\n    pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n    pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n  } while (bVar29);" do (compound_statement "{\n    if (iVar17 == 0) break;\n    iVar17 = iVar17 + -1;\n    bVar8 = *pbVar22 < *pbVar25;\n    bVar29 = *pbVar22 == *pbVar25;\n    pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n    pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n  }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar8 = *pbVar22 < *pbVar25;" (assignment_expression "bVar8 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar29 = *pbVar22 == *pbVar25;" (assignment_expression "bVar29 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;) (expression_statement "bVar8 = (!bVar8 && !bVar29) == bVar8;" (assignment_expression "bVar8 = (!bVar8 && !bVar29) == bVar8" identifier = (binary_expression "(!bVar8 && !bVar29) == bVar8" (parenthesized_expression "(!bVar8 && !bVar29)" ( (binary_expression "!bVar8 && !bVar29" (unary_expression "!bVar8" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar8) {\nLAB_000aee98:\n    pOVar11->field_0x91 = pOVar11->field_0x91 | 8;\n    bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);\n    pGVar12 = (General_options *)(uint)bVar16;\n    if ((pGVar19->text_reorder_).value == false) {\nLAB_000af249:\n      if (bVar16 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar16 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar9 = (pGVar19->relocatable_).value;\n    if (*(char *)(*(int *)((int)pppPVar20 + 0x60) + 0x1cd) != '\0') goto LAB_000af114;\n    if ((bool)cVar9 == false) {\n      *(General_options **)((int)pppPVar20 + 0xc) = pGVar19;\n      puVar24 = special_ordering_of_input_section(char_const*)::text_section_sort;\n      *(char ***)((int)pppPVar20 + 8) = gdb_fast_lookup_sections;\n      pcVar10 = ".text.unlikely";\n      sVar15 = 0xe;\n      while( true ) {\n        *(size_t *)((int)pppPVar20 + -8) = sVar15;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf28d;\n        iVar17 = strncmp(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),\n                         *(size_t *)((int)pppPVar20 + -8));\n        if (iVar17 == 0) break;\n        puVar24 = (undefined1 *)((int)puVar24 + 4);\n        if (*(undefined4 **)((int)pppPVar20 + 8) == (undefined4 *)puVar24) goto LAB_000af11c;\n        pcVar10 = *(char **)puVar24;\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf2ac;\n        sVar15 = strlen(*(char **)((int)pppPVar20 + -0x10));\n      }\n      pGVar19 = *(General_options **)((int)pppPVar20 + 0xc);\n      pOVar11->field_0x91 = pOVar11->field_0x91 | 8;\n      bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);\n      pGVar12 = (General_options *)(uint)bVar16;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar17 = 7;\n    pbVar22 = (byte *)".dtors.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    bVar29 = false;\n    bVar8 = (!bVar27 && !bVar8) == bVar27;\n    if (bVar8) goto LAB_000aee98;\n    iVar17 = 0xc;\n    pbVar22 = (byte *)".init_array.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar29 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    bVar27 = false;\n    bVar8 = (!bVar29 && !bVar8) == bVar29;\n    if (bVar8) goto LAB_000aee98;\n    iVar17 = 0xc;\n    pbVar22 = (byte *)".fini_array.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    if ((!bVar27 && !bVar8) == bVar27) goto LAB_000aee98;\n    bVar8 = false;\n    bVar29 = (pGVar19->ctors_in_init_array_).value == false;\n    if (!bVar29) {\n      iVar17 = 7;\n      pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n      pbVar25 = (byte *)".ctors";\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar8 = *pbVar22 < *pbVar25;\n        bVar29 = *pbVar22 == *pbVar25;\n        pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n        pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n      } while (bVar29);\n      bVar27 = false;\n      bVar8 = (!bVar8 && !bVar29) == bVar8;\n      if (!bVar8) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".dtors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar27 = *pbVar22 < *pbVar25;\n          bVar8 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar27 && !bVar8) != bVar27) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if ((pGVar19->text_reorder_).value != false) goto LAB_000aeebd;\nLAB_000af10d:\n    cVar9 = (pGVar19->relocatable_).value;\nLAB_000af114:\n    if (cVar9 == '\0') {\nLAB_000af11c:\n      uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14);\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n      bVar8 = uVar14 < 4;\n      bVar29 = uVar14 == 4;\n      if (4 < uVar14) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".ctors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar8 = *pbVar22 < *pbVar25;\n          bVar29 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar29);\n        bVar27 = false;\n        bVar8 = (!bVar8 && !bVar29) == bVar8;\n        if (bVar8) {\nLAB_000af164:\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".init_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) goto LAB_000af1d0;\n        }\n        else {\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }\n        *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n        *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24);\n        *(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10);\n        *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3;\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                  ();\n        pGVar12 = (General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }" if (parenthesized_expression "(bVar8)" ( identifier )) (compound_statement "{\nLAB_000aee98:\n    pOVar11->field_0x91 = pOVar11->field_0x91 | 8;\n    bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);\n    pGVar12 = (General_options *)(uint)bVar16;\n    if ((pGVar19->text_reorder_).value == false) {\nLAB_000af249:\n      if (bVar16 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar16 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar9 = (pGVar19->relocatable_).value;\n    if (*(char *)(*(int *)((int)pppPVar20 + 0x60) + 0x1cd) != '\0') goto LAB_000af114;\n    if ((bool)cVar9 == false) {\n      *(General_options **)((int)pppPVar20 + 0xc) = pGVar19;\n      puVar24 = special_ordering_of_input_section(char_const*)::text_section_sort;\n      *(char ***)((int)pppPVar20 + 8) = gdb_fast_lookup_sections;\n      pcVar10 = ".text.unlikely";\n      sVar15 = 0xe;\n      while( true ) {\n        *(size_t *)((int)pppPVar20 + -8) = sVar15;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf28d;\n        iVar17 = strncmp(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),\n                         *(size_t *)((int)pppPVar20 + -8));\n        if (iVar17 == 0) break;\n        puVar24 = (undefined1 *)((int)puVar24 + 4);\n        if (*(undefined4 **)((int)pppPVar20 + 8) == (undefined4 *)puVar24) goto LAB_000af11c;\n        pcVar10 = *(char **)puVar24;\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf2ac;\n        sVar15 = strlen(*(char **)((int)pppPVar20 + -0x10));\n      }\n      pGVar19 = *(General_options **)((int)pppPVar20 + 0xc);\n      pOVar11->field_0x91 = pOVar11->field_0x91 | 8;\n      bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);\n      pGVar12 = (General_options *)(uint)bVar16;\n      goto LAB_000af249;\n    }\n  }" { (labeled_statement "LAB_000aee98:\n    pOVar11->field_0x91 = pOVar11->field_0x91 | 8;" statement_identifier : (expression_statement "pOVar11->field_0x91 = pOVar11->field_0x91 | 8;" (assignment_expression "pOVar11->field_0x91 = pOVar11->field_0x91 | 8" (field_expression "pOVar11->field_0x91" identifier -> field_identifier) = (binary_expression "pOVar11->field_0x91 | 8" (field_expression "pOVar11->field_0x91" identifier -> field_identifier) | number_literal)) ;)) (expression_statement "bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);" (assignment_expression "bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac)" identifier = (pointer_expression "*(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac)" * (cast_expression "(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppPVar20 + 4) + 0xac)" ( (binary_expression "*(int *)((int)pppPVar20 + 4) + 0xac" (pointer_expression "*(int *)((int)pppPVar20 + 4)" * (cast_expression "(int *)((int)pppPVar20 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 4)" ( (binary_expression "(int)pppPVar20 + 4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pGVar12 = (General_options *)(uint)bVar16;" (assignment_expression "pGVar12 = (General_options *)(uint)bVar16" identifier = (cast_expression "(General_options *)(uint)bVar16" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((pGVar19->text_reorder_).value == false) {\nLAB_000af249:\n      if (bVar16 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }" if (parenthesized_expression "((pGVar19->text_reorder_).value == false)" ( (binary_expression "(pGVar19->text_reorder_).value == false" (field_expression "(pGVar19->text_reorder_).value" (parenthesized_expression "(pGVar19->text_reorder_)" ( (field_expression "pGVar19->text_reorder_" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\nLAB_000af249:\n      if (bVar16 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }" { (labeled_statement "LAB_000af249:\n      if (bVar16 != 0) goto LAB_000aeee2;" statement_identifier : (if_statement "if (bVar16 != 0) goto LAB_000aeee2;" if (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000aeee2;" goto statement_identifier ;))) (goto_statement "goto LAB_000af10d;" goto statement_identifier ;) })) (if_statement "if (bVar16 != 0) goto LAB_000aeee2;" if (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000aeee2;" goto statement_identifier ;)) (labeled_statement "LAB_000aeebd:\n    cVar9 = (pGVar19->relocatable_).value;" statement_identifier : (expression_statement "cVar9 = (pGVar19->relocatable_).value;" (assignment_expression "cVar9 = (pGVar19->relocatable_).value" identifier = (field_expression "(pGVar19->relocatable_).value" (parenthesized_expression "(pGVar19->relocatable_)" ( (field_expression "pGVar19->relocatable_" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if (*(char *)(*(int *)((int)pppPVar20 + 0x60) + 0x1cd) != '\0') goto LAB_000af114;" if (parenthesized_expression "(*(char *)(*(int *)((int)pppPVar20 + 0x60) + 0x1cd) != '\0')" ( (binary_expression "*(char *)(*(int *)((int)pppPVar20 + 0x60) + 0x1cd) != '\0'" (pointer_expression "*(char *)(*(int *)((int)pppPVar20 + 0x60) + 0x1cd)" * (cast_expression "(char *)(*(int *)((int)pppPVar20 + 0x60) + 0x1cd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppPVar20 + 0x60) + 0x1cd)" ( (binary_expression "*(int *)((int)pppPVar20 + 0x60) + 0x1cd" (pointer_expression "*(int *)((int)pppPVar20 + 0x60)" * (cast_expression "(int *)((int)pppPVar20 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x60)" ( (binary_expression "(int)pppPVar20 + 0x60" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000af114;" goto statement_identifier ;)) (if_statement "if ((bool)cVar9 == false) {\n      *(General_options **)((int)pppPVar20 + 0xc) = pGVar19;\n      puVar24 = special_ordering_of_input_section(char_const*)::text_section_sort;\n      *(char ***)((int)pppPVar20 + 8) = gdb_fast_lookup_sections;\n      pcVar10 = ".text.unlikely";\n      sVar15 = 0xe;\n      while( true ) {\n        *(size_t *)((int)pppPVar20 + -8) = sVar15;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf28d;\n        iVar17 = strncmp(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),\n                         *(size_t *)((int)pppPVar20 + -8));\n        if (iVar17 == 0) break;\n        puVar24 = (undefined1 *)((int)puVar24 + 4);\n        if (*(undefined4 **)((int)pppPVar20 + 8) == (undefined4 *)puVar24) goto LAB_000af11c;\n        pcVar10 = *(char **)puVar24;\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf2ac;\n        sVar15 = strlen(*(char **)((int)pppPVar20 + -0x10));\n      }\n      pGVar19 = *(General_options **)((int)pppPVar20 + 0xc);\n      pOVar11->field_0x91 = pOVar11->field_0x91 | 8;\n      bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);\n      pGVar12 = (General_options *)(uint)bVar16;\n      goto LAB_000af249;\n    }" if (parenthesized_expression "((bool)cVar9 == false)" ( (binary_expression "(bool)cVar9 == false" (cast_expression "(bool)cVar9" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) (compound_statement "{\n      *(General_options **)((int)pppPVar20 + 0xc) = pGVar19;\n      puVar24 = special_ordering_of_input_section(char_const*)::text_section_sort;\n      *(char ***)((int)pppPVar20 + 8) = gdb_fast_lookup_sections;\n      pcVar10 = ".text.unlikely";\n      sVar15 = 0xe;\n      while( true ) {\n        *(size_t *)((int)pppPVar20 + -8) = sVar15;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf28d;\n        iVar17 = strncmp(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),\n                         *(size_t *)((int)pppPVar20 + -8));\n        if (iVar17 == 0) break;\n        puVar24 = (undefined1 *)((int)puVar24 + 4);\n        if (*(undefined4 **)((int)pppPVar20 + 8) == (undefined4 *)puVar24) goto LAB_000af11c;\n        pcVar10 = *(char **)puVar24;\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf2ac;\n        sVar15 = strlen(*(char **)((int)pppPVar20 + -0x10));\n      }\n      pGVar19 = *(General_options **)((int)pppPVar20 + 0xc);\n      pOVar11->field_0x91 = pOVar11->field_0x91 | 8;\n      bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);\n      pGVar12 = (General_options *)(uint)bVar16;\n      goto LAB_000af249;\n    }" { (expression_statement "*(General_options **)((int)pppPVar20 + 0xc) = pGVar19;" (assignment_expression "*(General_options **)((int)pppPVar20 + 0xc) = pGVar19" (pointer_expression "*(General_options **)((int)pppPVar20 + 0xc)" * (cast_expression "(General_options **)((int)pppPVar20 + 0xc)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0xc)" ( (binary_expression "(int)pppPVar20 + 0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar24 = special_ordering_of_input_section(char_const*)::text_section_sort;" (assignment_expression "puVar24 = special_ordering_of_input_section(char_const*)::text_section_sort" identifier = (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) )))) ;) (expression_statement "*(char ***)((int)pppPVar20 + 8) = gdb_fast_lookup_sections;" (assignment_expression "*(char ***)((int)pppPVar20 + 8) = gdb_fast_lookup_sections" (pointer_expression "*(char ***)((int)pppPVar20 + 8)" * (cast_expression "(char ***)((int)pppPVar20 + 8)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppPVar20 + 8)" ( (binary_expression "(int)pppPVar20 + 8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar10 = ".text.unlikely";" (assignment_expression "pcVar10 = ".text.unlikely"" identifier = (string_literal "".text.unlikely"" " string_content ")) ;) (expression_statement "sVar15 = 0xe;" (assignment_expression "sVar15 = 0xe" identifier = number_literal) ;) (while_statement "while( true ) {\n        *(size_t *)((int)pppPVar20 + -8) = sVar15;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf28d;\n        iVar17 = strncmp(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),\n                         *(size_t *)((int)pppPVar20 + -8));\n        if (iVar17 == 0) break;\n        puVar24 = (undefined1 *)((int)puVar24 + 4);\n        if (*(undefined4 **)((int)pppPVar20 + 8) == (undefined4 *)puVar24) goto LAB_000af11c;\n        pcVar10 = *(char **)puVar24;\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf2ac;\n        sVar15 = strlen(*(char **)((int)pppPVar20 + -0x10));\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        *(size_t *)((int)pppPVar20 + -8) = sVar15;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x6c);\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf28d;\n        iVar17 = strncmp(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),\n                         *(size_t *)((int)pppPVar20 + -8));\n        if (iVar17 == 0) break;\n        puVar24 = (undefined1 *)((int)puVar24 + 4);\n        if (*(undefined4 **)((int)pppPVar20 + 8) == (undefined4 *)puVar24) goto LAB_000af11c;\n        pcVar10 = *(char **)puVar24;\n        *(char **)((int)pppPVar20 + -0x10) = pcVar10;\n        *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf2ac;\n        sVar15 = strlen(*(char **)((int)pppPVar20 + -0x10));\n      }" { (expression_statement "*(size_t *)((int)pppPVar20 + -8) = sVar15;" (assignment_expression "*(size_t *)((int)pppPVar20 + -8) = sVar15" (pointer_expression "*(size_t *)((int)pppPVar20 + -8)" * (cast_expression "(size_t *)((int)pppPVar20 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x6c);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x6c)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x6c)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char **)((int)pppPVar20 + -0x10) = pcVar10;" (assignment_expression "*(char **)((int)pppPVar20 + -0x10) = pcVar10" (pointer_expression "*(char **)((int)pppPVar20 + -0x10)" * (cast_expression "(char **)((int)pppPVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf28d;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf28d" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x14)" ( (binary_expression "(int)pppPVar20 + -0x14" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = strncmp(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),\n                         *(size_t *)((int)pppPVar20 + -8));" (assignment_expression "iVar17 = strncmp(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),\n                         *(size_t *)((int)pppPVar20 + -8))" identifier = (call_expression "strncmp(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),\n                         *(size_t *)((int)pppPVar20 + -8))" identifier (argument_list "(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),\n                         *(size_t *)((int)pppPVar20 + -8))" ( (pointer_expression "*(char **)((int)pppPVar20 + -0x10)" * (cast_expression "(char **)((int)pppPVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)pppPVar20 + -0xc)" * (cast_expression "(char **)((int)pppPVar20 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)pppPVar20 + -8)" * (cast_expression "(size_t *)((int)pppPVar20 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar24 = (undefined1 *)((int)puVar24 + 4);" (assignment_expression "puVar24 = (undefined1 *)((int)puVar24 + 4)" identifier = (cast_expression "(undefined1 *)((int)puVar24 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar24 + 4)" ( (binary_expression "(int)puVar24 + 4" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(undefined4 **)((int)pppPVar20 + 8) == (undefined4 *)puVar24) goto LAB_000af11c;" if (parenthesized_expression "(*(undefined4 **)((int)pppPVar20 + 8) == (undefined4 *)puVar24)" ( (binary_expression "*(undefined4 **)((int)pppPVar20 + 8) == (undefined4 *)puVar24" (pointer_expression "*(undefined4 **)((int)pppPVar20 + 8)" * (cast_expression "(undefined4 **)((int)pppPVar20 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 8)" ( (binary_expression "(int)pppPVar20 + 8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (cast_expression "(undefined4 *)puVar24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (goto_statement "goto LAB_000af11c;" goto statement_identifier ;)) (expression_statement "pcVar10 = *(char **)puVar24;" (assignment_expression "pcVar10 = *(char **)puVar24" identifier = (pointer_expression "*(char **)puVar24" * (cast_expression "(char **)puVar24" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(char **)((int)pppPVar20 + -0x10) = pcVar10;" (assignment_expression "*(char **)((int)pppPVar20 + -0x10) = pcVar10" (pointer_expression "*(char **)((int)pppPVar20 + -0x10)" * (cast_expression "(char **)((int)pppPVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf2ac;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x14) = 0xaf2ac" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x14)" ( (binary_expression "(int)pppPVar20 + -0x14" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar15 = strlen(*(char **)((int)pppPVar20 + -0x10));" (assignment_expression "sVar15 = strlen(*(char **)((int)pppPVar20 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)pppPVar20 + -0x10))" identifier (argument_list "(*(char **)((int)pppPVar20 + -0x10))" ( (pointer_expression "*(char **)((int)pppPVar20 + -0x10)" * (cast_expression "(char **)((int)pppPVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "pGVar19 = *(General_options **)((int)pppPVar20 + 0xc);" (assignment_expression "pGVar19 = *(General_options **)((int)pppPVar20 + 0xc)" identifier = (pointer_expression "*(General_options **)((int)pppPVar20 + 0xc)" * (cast_expression "(General_options **)((int)pppPVar20 + 0xc)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0xc)" ( (binary_expression "(int)pppPVar20 + 0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pOVar11->field_0x91 = pOVar11->field_0x91 | 8;" (assignment_expression "pOVar11->field_0x91 = pOVar11->field_0x91 | 8" (field_expression "pOVar11->field_0x91" identifier -> field_identifier) = (binary_expression "pOVar11->field_0x91 | 8" (field_expression "pOVar11->field_0x91" identifier -> field_identifier) | number_literal)) ;) (expression_statement "bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac);" (assignment_expression "bVar16 = *(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac)" identifier = (pointer_expression "*(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac)" * (cast_expression "(byte *)(*(int *)((int)pppPVar20 + 4) + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppPVar20 + 4) + 0xac)" ( (binary_expression "*(int *)((int)pppPVar20 + 4) + 0xac" (pointer_expression "*(int *)((int)pppPVar20 + 4)" * (cast_expression "(int *)((int)pppPVar20 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 4)" ( (binary_expression "(int)pppPVar20 + 4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pGVar12 = (General_options *)(uint)bVar16;" (assignment_expression "pGVar12 = (General_options *)(uint)bVar16" identifier = (cast_expression "(General_options *)(uint)bVar16" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (goto_statement "goto LAB_000af249;" goto statement_identifier ;) })) }) (else_clause "else {\n    iVar17 = 7;\n    pbVar22 = (byte *)".dtors.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    bVar29 = false;\n    bVar8 = (!bVar27 && !bVar8) == bVar27;\n    if (bVar8) goto LAB_000aee98;\n    iVar17 = 0xc;\n    pbVar22 = (byte *)".init_array.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar29 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    bVar27 = false;\n    bVar8 = (!bVar29 && !bVar8) == bVar29;\n    if (bVar8) goto LAB_000aee98;\n    iVar17 = 0xc;\n    pbVar22 = (byte *)".fini_array.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    if ((!bVar27 && !bVar8) == bVar27) goto LAB_000aee98;\n    bVar8 = false;\n    bVar29 = (pGVar19->ctors_in_init_array_).value == false;\n    if (!bVar29) {\n      iVar17 = 7;\n      pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n      pbVar25 = (byte *)".ctors";\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar8 = *pbVar22 < *pbVar25;\n        bVar29 = *pbVar22 == *pbVar25;\n        pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n        pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n      } while (bVar29);\n      bVar27 = false;\n      bVar8 = (!bVar8 && !bVar29) == bVar8;\n      if (!bVar8) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".dtors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar27 = *pbVar22 < *pbVar25;\n          bVar8 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar27 && !bVar8) != bVar27) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if ((pGVar19->text_reorder_).value != false) goto LAB_000aeebd;\nLAB_000af10d:\n    cVar9 = (pGVar19->relocatable_).value;\nLAB_000af114:\n    if (cVar9 == '\0') {\nLAB_000af11c:\n      uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14);\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n      bVar8 = uVar14 < 4;\n      bVar29 = uVar14 == 4;\n      if (4 < uVar14) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".ctors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar8 = *pbVar22 < *pbVar25;\n          bVar29 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar29);\n        bVar27 = false;\n        bVar8 = (!bVar8 && !bVar29) == bVar8;\n        if (bVar8) {\nLAB_000af164:\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".init_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) goto LAB_000af1d0;\n        }\n        else {\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }\n        *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n        *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24);\n        *(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10);\n        *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3;\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                  ();\n        pGVar12 = (General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }" else (compound_statement "{\n    iVar17 = 7;\n    pbVar22 = (byte *)".dtors.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    bVar29 = false;\n    bVar8 = (!bVar27 && !bVar8) == bVar27;\n    if (bVar8) goto LAB_000aee98;\n    iVar17 = 0xc;\n    pbVar22 = (byte *)".init_array.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar29 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    bVar27 = false;\n    bVar8 = (!bVar29 && !bVar8) == bVar29;\n    if (bVar8) goto LAB_000aee98;\n    iVar17 = 0xc;\n    pbVar22 = (byte *)".fini_array.";\n    pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n    do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);\n    if ((!bVar27 && !bVar8) == bVar27) goto LAB_000aee98;\n    bVar8 = false;\n    bVar29 = (pGVar19->ctors_in_init_array_).value == false;\n    if (!bVar29) {\n      iVar17 = 7;\n      pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n      pbVar25 = (byte *)".ctors";\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar8 = *pbVar22 < *pbVar25;\n        bVar29 = *pbVar22 == *pbVar25;\n        pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n        pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n      } while (bVar29);\n      bVar27 = false;\n      bVar8 = (!bVar8 && !bVar29) == bVar8;\n      if (!bVar8) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".dtors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar27 = *pbVar22 < *pbVar25;\n          bVar8 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar27 && !bVar8) != bVar27) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if ((pGVar19->text_reorder_).value != false) goto LAB_000aeebd;\nLAB_000af10d:\n    cVar9 = (pGVar19->relocatable_).value;\nLAB_000af114:\n    if (cVar9 == '\0') {\nLAB_000af11c:\n      uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14);\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n      bVar8 = uVar14 < 4;\n      bVar29 = uVar14 == 4;\n      if (4 < uVar14) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".ctors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar8 = *pbVar22 < *pbVar25;\n          bVar29 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar29);\n        bVar27 = false;\n        bVar8 = (!bVar8 && !bVar29) == bVar8;\n        if (bVar8) {\nLAB_000af164:\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".init_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) goto LAB_000af1d0;\n        }\n        else {\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }\n        *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n        *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24);\n        *(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10);\n        *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3;\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                  ();\n        pGVar12 = (General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }" { (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)".dtors.";" (assignment_expression "pbVar22 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);" (assignment_expression "pbVar25 = *(byte **)((int)pppPVar20 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar20 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar20 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);" do (compound_statement "{\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar27 = *pbVar22 < *pbVar25;" (assignment_expression "bVar27 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar8 = *pbVar22 == *pbVar25;" (assignment_expression "bVar8 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" identifier = false) ;) (expression_statement "bVar8 = (!bVar27 && !bVar8) == bVar27;" (assignment_expression "bVar8 = (!bVar27 && !bVar8) == bVar27" identifier = (binary_expression "(!bVar27 && !bVar8) == bVar27" (parenthesized_expression "(!bVar27 && !bVar8)" ( (binary_expression "!bVar27 && !bVar8" (unary_expression "!bVar27" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar8) goto LAB_000aee98;" if (parenthesized_expression "(bVar8)" ( identifier )) (goto_statement "goto LAB_000aee98;" goto statement_identifier ;)) (expression_statement "iVar17 = 0xc;" (assignment_expression "iVar17 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)".init_array.";" (assignment_expression "pbVar22 = (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 "pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);" (assignment_expression "pbVar25 = *(byte **)((int)pppPVar20 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar20 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar20 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar29 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);" do (compound_statement "{\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar29 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar22 < *pbVar25;" (assignment_expression "bVar29 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar8 = *pbVar22 == *pbVar25;" (assignment_expression "bVar8 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;) (expression_statement "bVar8 = (!bVar29 && !bVar8) == bVar29;" (assignment_expression "bVar8 = (!bVar29 && !bVar8) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar8) == bVar29" (parenthesized_expression "(!bVar29 && !bVar8)" ( (binary_expression "!bVar29 && !bVar8" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar8) goto LAB_000aee98;" if (parenthesized_expression "(bVar8)" ( identifier )) (goto_statement "goto LAB_000aee98;" goto statement_identifier ;)) (expression_statement "iVar17 = 0xc;" (assignment_expression "iVar17 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)".fini_array.";" (assignment_expression "pbVar22 = (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 "pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);" (assignment_expression "pbVar25 = *(byte **)((int)pppPVar20 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar20 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar20 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    } while (bVar8);" do (compound_statement "{\n      if (iVar17 == 0) break;\n      iVar17 = iVar17 + -1;\n      bVar27 = *pbVar22 < *pbVar25;\n      bVar8 = *pbVar22 == *pbVar25;\n      pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n      pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n    }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar27 = *pbVar22 < *pbVar25;" (assignment_expression "bVar27 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar8 = *pbVar22 == *pbVar25;" (assignment_expression "bVar8 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (if_statement "if ((!bVar27 && !bVar8) == bVar27) goto LAB_000aee98;" if (parenthesized_expression "((!bVar27 && !bVar8) == bVar27)" ( (binary_expression "(!bVar27 && !bVar8) == bVar27" (parenthesized_expression "(!bVar27 && !bVar8)" ( (binary_expression "!bVar27 && !bVar8" (unary_expression "!bVar27" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_000aee98;" goto statement_identifier ;)) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (expression_statement "bVar29 = (pGVar19->ctors_in_init_array_).value == false;" (assignment_expression "bVar29 = (pGVar19->ctors_in_init_array_).value == false" identifier = (binary_expression "(pGVar19->ctors_in_init_array_).value == false" (field_expression "(pGVar19->ctors_in_init_array_).value" (parenthesized_expression "(pGVar19->ctors_in_init_array_)" ( (field_expression "pGVar19->ctors_in_init_array_" identifier -> field_identifier) )) . field_identifier) == false)) ;) (if_statement "if (!bVar29) {\n      iVar17 = 7;\n      pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n      pbVar25 = (byte *)".ctors";\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar8 = *pbVar22 < *pbVar25;\n        bVar29 = *pbVar22 == *pbVar25;\n        pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n        pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n      } while (bVar29);\n      bVar27 = false;\n      bVar8 = (!bVar8 && !bVar29) == bVar8;\n      if (!bVar8) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".dtors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar27 = *pbVar22 < *pbVar25;\n          bVar8 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar27 && !bVar8) != bVar27) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }" if (parenthesized_expression "(!bVar29)" ( (unary_expression "!bVar29" ! identifier) )) (compound_statement "{\n      iVar17 = 7;\n      pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n      pbVar25 = (byte *)".ctors";\n      do {\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar8 = *pbVar22 < *pbVar25;\n        bVar29 = *pbVar22 == *pbVar25;\n        pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n        pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n      } while (bVar29);\n      bVar27 = false;\n      bVar8 = (!bVar8 && !bVar29) == bVar8;\n      if (!bVar8) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".dtors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar27 = *pbVar22 < *pbVar25;\n          bVar8 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar27 && !bVar8) != bVar27) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }" { (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);" (assignment_expression "pbVar22 = *(byte **)((int)pppPVar20 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar20 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar20 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pbVar25 = (byte *)".ctors";" (assignment_expression "pbVar25 = (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 (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar8 = *pbVar22 < *pbVar25;\n        bVar29 = *pbVar22 == *pbVar25;\n        pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n        pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n      } while (bVar29);" do (compound_statement "{\n        if (iVar17 == 0) break;\n        iVar17 = iVar17 + -1;\n        bVar8 = *pbVar22 < *pbVar25;\n        bVar29 = *pbVar22 == *pbVar25;\n        pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n        pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n      }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar8 = *pbVar22 < *pbVar25;" (assignment_expression "bVar8 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar29 = *pbVar22 == *pbVar25;" (assignment_expression "bVar29 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;) (expression_statement "bVar8 = (!bVar8 && !bVar29) == bVar8;" (assignment_expression "bVar8 = (!bVar8 && !bVar29) == bVar8" identifier = (binary_expression "(!bVar8 && !bVar29) == bVar8" (parenthesized_expression "(!bVar8 && !bVar29)" ( (binary_expression "!bVar8 && !bVar29" (unary_expression "!bVar8" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar8) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".dtors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar27 = *pbVar22 < *pbVar25;\n          bVar8 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar27 && !bVar8) != bVar27) goto LAB_000af100;\n      }" if (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) )) (compound_statement "{\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".dtors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar27 = *pbVar22 < *pbVar25;\n          bVar8 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar8);\n        if ((!bVar27 && !bVar8) != bVar27) goto LAB_000af100;\n      }" { (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);" (assignment_expression "pbVar22 = *(byte **)((int)pppPVar20 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar20 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar20 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pbVar25 = (byte *)".dtors";" (assignment_expression "pbVar25 = (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 (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar27 = *pbVar22 < *pbVar25;\n          bVar8 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar8);" do (compound_statement "{\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar27 = *pbVar22 < *pbVar25;\n          bVar8 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar27 = *pbVar22 < *pbVar25;" (assignment_expression "bVar27 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar8 = *pbVar22 == *pbVar25;" (assignment_expression "bVar8 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (if_statement "if ((!bVar27 && !bVar8) != bVar27) goto LAB_000af100;" if (parenthesized_expression "((!bVar27 && !bVar8) != bVar27)" ( (binary_expression "(!bVar27 && !bVar8) != bVar27" (parenthesized_expression "(!bVar27 && !bVar8)" ( (binary_expression "!bVar27 && !bVar8" (unary_expression "!bVar27" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000af100;" goto statement_identifier ;)) })) (goto_statement "goto LAB_000aee98;" goto statement_identifier ;) })) (labeled_statement "LAB_000af100:\n    if ((pGVar19->text_reorder_).value != false) goto LAB_000aeebd;" statement_identifier : (if_statement "if ((pGVar19->text_reorder_).value != false) goto LAB_000aeebd;" if (parenthesized_expression "((pGVar19->text_reorder_).value != false)" ( (binary_expression "(pGVar19->text_reorder_).value != false" (field_expression "(pGVar19->text_reorder_).value" (parenthesized_expression "(pGVar19->text_reorder_)" ( (field_expression "pGVar19->text_reorder_" identifier -> field_identifier) )) . field_identifier) != false) )) (goto_statement "goto LAB_000aeebd;" goto statement_identifier ;))) (labeled_statement "LAB_000af10d:\n    cVar9 = (pGVar19->relocatable_).value;" statement_identifier : (expression_statement "cVar9 = (pGVar19->relocatable_).value;" (assignment_expression "cVar9 = (pGVar19->relocatable_).value" identifier = (field_expression "(pGVar19->relocatable_).value" (parenthesized_expression "(pGVar19->relocatable_)" ( (field_expression "pGVar19->relocatable_" identifier -> field_identifier) )) . field_identifier)) ;)) (labeled_statement "LAB_000af114:\n    if (cVar9 == '\0') {\nLAB_000af11c:\n      uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14);\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n      bVar8 = uVar14 < 4;\n      bVar29 = uVar14 == 4;\n      if (4 < uVar14) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".ctors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar8 = *pbVar22 < *pbVar25;\n          bVar29 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar29);\n        bVar27 = false;\n        bVar8 = (!bVar8 && !bVar29) == bVar8;\n        if (bVar8) {\nLAB_000af164:\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".init_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) goto LAB_000af1d0;\n        }\n        else {\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }\n        *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n        *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24);\n        *(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10);\n        *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3;\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                  ();\n        pGVar12 = (General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);\n        goto LAB_000aeee2;\n      }\n    }" statement_identifier : (if_statement "if (cVar9 == '\0') {\nLAB_000af11c:\n      uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14);\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n      bVar8 = uVar14 < 4;\n      bVar29 = uVar14 == 4;\n      if (4 < uVar14) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".ctors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar8 = *pbVar22 < *pbVar25;\n          bVar29 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar29);\n        bVar27 = false;\n        bVar8 = (!bVar8 && !bVar29) == bVar8;\n        if (bVar8) {\nLAB_000af164:\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".init_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) goto LAB_000af1d0;\n        }\n        else {\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }\n        *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n        *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24);\n        *(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10);\n        *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3;\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                  ();\n        pGVar12 = (General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);\n        goto LAB_000aeee2;\n      }\n    }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000af11c:\n      uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14);\n      uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;\n      bVar8 = uVar14 < 4;\n      bVar29 = uVar14 == 4;\n      if (4 < uVar14) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".ctors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar8 = *pbVar22 < *pbVar25;\n          bVar29 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar29);\n        bVar27 = false;\n        bVar8 = (!bVar8 && !bVar29) == bVar8;\n        if (bVar8) {\nLAB_000af164:\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".init_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) goto LAB_000af1d0;\n        }\n        else {\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }\n        *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n        *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24);\n        *(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10);\n        *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3;\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                  ();\n        pGVar12 = (General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);\n        goto LAB_000aeee2;\n      }\n    }" { (labeled_statement "LAB_000af11c:\n      uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14);" statement_identifier : (expression_statement "uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14);" (assignment_expression "uVar14 = *(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14)" identifier = (pointer_expression "*(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14)" * (cast_expression "(uint *)(**(int **)((int)pppPVar20 + 0x70) + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)((int)pppPVar20 + 0x70) + 0x14)" ( (binary_expression "**(int **)((int)pppPVar20 + 0x70) + 0x14" (pointer_expression "**(int **)((int)pppPVar20 + 0x70)" * (pointer_expression "*(int **)((int)pppPVar20 + 0x70)" * (cast_expression "(int **)((int)pppPVar20 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x70)" ( (binary_expression "(int)pppPVar20 + 0x70" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) ))))) ;)) (expression_statement "uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18;" (assignment_expression "uVar14 = uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18" identifier = (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8 | uVar14 << 0x18" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8 | (uVar14 & 0xff00) << 8" (binary_expression "uVar14 >> 0x18 | (uVar14 & 0xff0000) >> 8" (binary_expression "uVar14 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar14 & 0xff0000) >> 8" (parenthesized_expression "(uVar14 & 0xff0000)" ( (binary_expression "uVar14 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar14 & 0xff00) << 8" (parenthesized_expression "(uVar14 & 0xff00)" ( (binary_expression "uVar14 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar14 << 0x18" identifier << number_literal))) ;) (expression_statement "bVar8 = uVar14 < 4;" (assignment_expression "bVar8 = uVar14 < 4" identifier = (binary_expression "uVar14 < 4" identifier < number_literal)) ;) (expression_statement "bVar29 = uVar14 == 4;" (assignment_expression "bVar29 = uVar14 == 4" identifier = (binary_expression "uVar14 == 4" identifier == number_literal)) ;) (if_statement "if (4 < uVar14) {\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".ctors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar8 = *pbVar22 < *pbVar25;\n          bVar29 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar29);\n        bVar27 = false;\n        bVar8 = (!bVar8 && !bVar29) == bVar8;\n        if (bVar8) {\nLAB_000af164:\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".init_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) goto LAB_000af1d0;\n        }\n        else {\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }\n        *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n        *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24);\n        *(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10);\n        *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3;\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                  ();\n        pGVar12 = (General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);\n        goto LAB_000aeee2;\n      }" if (parenthesized_expression "(4 < uVar14)" ( (binary_expression "4 < uVar14" number_literal < identifier) )) (compound_statement "{\n        iVar17 = 7;\n        pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n        pbVar25 = (byte *)".ctors";\n        do {\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar8 = *pbVar22 < *pbVar25;\n          bVar29 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar29);\n        bVar27 = false;\n        bVar8 = (!bVar8 && !bVar29) == bVar8;\n        if (bVar8) {\nLAB_000af164:\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".init_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) goto LAB_000af1d0;\n        }\n        else {\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }\n        *(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);\n        *(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar20 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar20 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24);\n        *(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28);\n        *(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10);\n        *(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3;\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                  ();\n        pGVar12 = (General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);\n        goto LAB_000aeee2;\n      }" { (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);" (assignment_expression "pbVar22 = *(byte **)((int)pppPVar20 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar20 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar20 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pbVar25 = (byte *)".ctors";" (assignment_expression "pbVar25 = (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 (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar8 = *pbVar22 < *pbVar25;\n          bVar29 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        } while (bVar29);" do (compound_statement "{\n          if (iVar17 == 0) break;\n          iVar17 = iVar17 + -1;\n          bVar8 = *pbVar22 < *pbVar25;\n          bVar29 = *pbVar22 == *pbVar25;\n          pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n          pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n        }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar8 = *pbVar22 < *pbVar25;" (assignment_expression "bVar8 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar29 = *pbVar22 == *pbVar25;" (assignment_expression "bVar29 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;) (expression_statement "bVar8 = (!bVar8 && !bVar29) == bVar8;" (assignment_expression "bVar8 = (!bVar8 && !bVar29) == bVar8" identifier = (binary_expression "(!bVar8 && !bVar29) == bVar8" (parenthesized_expression "(!bVar8 && !bVar29)" ( (binary_expression "!bVar8 && !bVar29" (unary_expression "!bVar8" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar8) {\nLAB_000af164:\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".init_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) goto LAB_000af1d0;\n        }\n        else {\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }" if (parenthesized_expression "(bVar8)" ( identifier )) (compound_statement "{\nLAB_000af164:\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".init_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) goto LAB_000af1d0;\n        }" { (labeled_statement "LAB_000af164:\n          bVar29 = false;" statement_identifier : (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" identifier = false) ;)) (expression_statement "iVar17 = 0xc;" (assignment_expression "iVar17 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)pOVar11->name_;" (assignment_expression "pbVar22 = (byte *)pOVar11->name_" identifier = (cast_expression "(byte *)pOVar11->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar11->name_" identifier -> field_identifier))) ;) (expression_statement "pbVar25 = (byte *)".init_array";" (assignment_expression "pbVar25 = (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 (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);" do (compound_statement "{\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar22 < *pbVar25;" (assignment_expression "bVar29 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar8 = *pbVar22 == *pbVar25;" (assignment_expression "bVar8 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (expression_statement "bVar8 = (!bVar29 && !bVar8) == bVar29;" (assignment_expression "bVar8 = (!bVar29 && !bVar8) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar8) == bVar29" (parenthesized_expression "(!bVar29 && !bVar8)" ( (binary_expression "!bVar29 && !bVar8" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar8) goto LAB_000af1d0;" if (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) )) (goto_statement "goto LAB_000af1d0;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }" else (compound_statement "{\n          iVar17 = 7;\n          pbVar22 = (byte *)".ctors.";\n          pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar8 = (!bVar27 && !bVar8) == bVar27;\n          if (bVar8) goto LAB_000af164;\nLAB_000af1d0:\n          bVar29 = false;\n          iVar17 = 7;\n          pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);\n          pbVar25 = (byte *)".dtors";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          bVar27 = false;\n          bVar8 = (!bVar29 && !bVar8) == bVar29;\n          if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }\n          bVar29 = false;\n          iVar17 = 0xc;\n          pbVar22 = (byte *)pOVar11->name_;\n          pbVar25 = (byte *)".fini_array";\n          do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);\n          if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;\n        }" { (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)".ctors.";" (assignment_expression "pbVar22 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);" (assignment_expression "pbVar25 = *(byte **)((int)pppPVar20 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar20 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar20 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);" do (compound_statement "{\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar27 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar27 = *pbVar22 < *pbVar25;" (assignment_expression "bVar27 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar8 = *pbVar22 == *pbVar25;" (assignment_expression "bVar8 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (expression_statement "bVar8 = (!bVar27 && !bVar8) == bVar27;" (assignment_expression "bVar8 = (!bVar27 && !bVar8) == bVar27" identifier = (binary_expression "(!bVar27 && !bVar8) == bVar27" (parenthesized_expression "(!bVar27 && !bVar8)" ( (binary_expression "!bVar27 && !bVar8" (unary_expression "!bVar27" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar8) goto LAB_000af164;" if (parenthesized_expression "(bVar8)" ( identifier )) (goto_statement "goto LAB_000af164;" goto statement_identifier ;)) (labeled_statement "LAB_000af1d0:\n          bVar29 = false;" statement_identifier : (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" identifier = false) ;)) (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar22 = *(byte **)((int)pppPVar20 + 0x6c);" (assignment_expression "pbVar22 = *(byte **)((int)pppPVar20 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar20 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar20 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pbVar25 = (byte *)".dtors";" (assignment_expression "pbVar25 = (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 (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);" do (compound_statement "{\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar22 < *pbVar25;" (assignment_expression "bVar29 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar8 = *pbVar22 == *pbVar25;" (assignment_expression "bVar8 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;) (expression_statement "bVar8 = (!bVar29 && !bVar8) == bVar29;" (assignment_expression "bVar8 = (!bVar29 && !bVar8) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar8) == bVar29" (parenthesized_expression "(!bVar29 && !bVar8)" ( (binary_expression "!bVar29 && !bVar8" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar8) {\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }" if (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) )) (compound_statement "{\n            iVar17 = 7;\n            pbVar22 = (byte *)".dtors.";\n            pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);\n            bVar8 = (!bVar27 && !bVar8) == bVar27;\n            if (!bVar8) goto LAB_000aeee0;\n          }" { (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)".dtors.";" (assignment_expression "pbVar22 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar25 = *(byte **)((int)pppPVar20 + 0x6c);" (assignment_expression "pbVar25 = *(byte **)((int)pppPVar20 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar20 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar20 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            } while (bVar8);" do (compound_statement "{\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar27 = *pbVar22 < *pbVar25;\n              bVar8 = *pbVar22 == *pbVar25;\n              pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n              pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n            }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar27 = *pbVar22 < *pbVar25;" (assignment_expression "bVar27 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar8 = *pbVar22 == *pbVar25;" (assignment_expression "bVar8 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (expression_statement "bVar8 = (!bVar27 && !bVar8) == bVar27;" (assignment_expression "bVar8 = (!bVar27 && !bVar8) == bVar27" identifier = (binary_expression "(!bVar27 && !bVar8) == bVar27" (parenthesized_expression "(!bVar27 && !bVar8)" ( (binary_expression "!bVar27 && !bVar8" (unary_expression "!bVar27" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar8) goto LAB_000aeee0;" if (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) )) (goto_statement "goto LAB_000aeee0;" goto statement_identifier ;)) })) (expression_statement "bVar29 = false;" (assignment_expression "bVar29 = false" identifier = false) ;) (expression_statement "iVar17 = 0xc;" (assignment_expression "iVar17 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)pOVar11->name_;" (assignment_expression "pbVar22 = (byte *)pOVar11->name_" identifier = (cast_expression "(byte *)pOVar11->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar11->name_" identifier -> field_identifier))) ;) (expression_statement "pbVar25 = (byte *)".fini_array";" (assignment_expression "pbVar25 = (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 (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          } while (bVar8);" do (compound_statement "{\n            if (iVar17 == 0) break;\n            iVar17 = iVar17 + -1;\n            bVar29 = *pbVar22 < *pbVar25;\n            bVar8 = *pbVar22 == *pbVar25;\n            pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;\n            pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;\n          }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar22 < *pbVar25;" (assignment_expression "bVar29 = *pbVar22 < *pbVar25" identifier = (binary_expression "*pbVar22 < *pbVar25" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar8 = *pbVar22 == *pbVar25;" (assignment_expression "bVar8 = *pbVar22 == *pbVar25" identifier = (binary_expression "*pbVar22 == *pbVar25" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (if_statement "if ((!bVar29 && !bVar8) != bVar29) goto LAB_000aeee0;" if (parenthesized_expression "((!bVar29 && !bVar8) != bVar29)" ( (binary_expression "(!bVar29 && !bVar8) != bVar29" (parenthesized_expression "(!bVar29 && !bVar8)" ( (binary_expression "!bVar29 && !bVar8" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000aeee0;" goto statement_identifier ;)) }))) (expression_statement "*(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + 0x28) = *(undefined4 *)((int)pppPVar20 + 100)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x28)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x28)" ( (binary_expression "(int)pppPVar20 + 0x28" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 100)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 100)" ( (binary_expression "(int)pppPVar20 + 100" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + 0x2c) = *(undefined4 *)((int)pppPVar20 + 0x68)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x2c)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x2c)" ( (binary_expression "(int)pppPVar20 + 0x2c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x68)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x68)" ( (binary_expression "(int)pppPVar20 + 0x68" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;" (assignment_expression "*(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array" (pointer_expression "*(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24)" * (call_expression "(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + 0x24)" (parenthesized_expression "(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)" ( (ERROR "unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*," (comma_expression "unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std" (binary_expression "unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold" (binary_expression "unordered_set<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "unordered_set<std::pair<gold" (binary_expression "unordered_set<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Section_id_hash" : : 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>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) ,) (binary_expression "_unsigned_int>_>_>\n          **" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)pppPVar20 + 0x24)" ( (binary_expression "(int)pppPVar20 + 0x24" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&ctors_sections_in_init_array" & identifier)) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x10)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24);" (assignment_expression "*(undefined1 **)((int)pppPVar20 + -0x14) = (undefined1 *)((int)pppPVar20 + 0x24)" (pointer_expression "*(undefined1 **)((int)pppPVar20 + -0x14)" * (cast_expression "(undefined1 **)((int)pppPVar20 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x14)" ( (binary_expression "(int)pppPVar20 + -0x14" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)pppPVar20 + 0x24)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x24)" ( (binary_expression "(int)pppPVar20 + 0x24" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28);" (assignment_expression "*(undefined1 **)((int)pppPVar20 + -0x18) = (undefined1 *)((int)pppPVar20 + 0x28)" (pointer_expression "*(undefined1 **)((int)pppPVar20 + -0x18)" * (cast_expression "(undefined1 **)((int)pppPVar20 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x18)" ( (binary_expression "(int)pppPVar20 + -0x18" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)pppPVar20 + 0x28)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x28)" ( (binary_expression "(int)pppPVar20 + 0x28" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;" (assignment_expression "*(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array" (pointer_expression "*(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c)" * (call_expression "(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)((int)pppPVar20 + -0x1c)" (parenthesized_expression "(unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*,_unsigned_int>_>_>\n          **)" ( (ERROR "unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std::equal_to<std::pair<gold::Relobj*,_unsigned_int>_>,_std::allocator<std::pair<gold::Relobj*," (comma_expression "unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold::Section_id_hash,_std" (binary_expression "unordered_set<std::pair<gold::Relobj*,_unsigned_int>,_gold" (binary_expression "unordered_set<std::pair<gold::Relobj*,_unsigned_int" (binary_expression "unordered_set<std::pair<gold" (binary_expression "unordered_set<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) > (ERROR "," ,) identifier) (ERROR "::Section_id_hash" : : 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>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (type_descriptor "Relobj*" type_identifier (abstract_pointer_declarator "*" *)) ,) (binary_expression "_unsigned_int>_>_>\n          **" (binary_expression "_unsigned_int>_>_" (binary_expression "_unsigned_int>_" identifier > identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "((int)pppPVar20 + -0x1c)" ( (binary_expression "(int)pppPVar20 + -0x1c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&ctors_sections_in_init_array" & identifier)) ;) (expression_statement "*(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10);" (assignment_expression "*(undefined1 **)((int)pppPVar20 + -0x20) = (undefined1 *)((int)pppPVar20 + 0x10)" (pointer_expression "*(undefined1 **)((int)pppPVar20 + -0x20)" * (cast_expression "(undefined1 **)((int)pppPVar20 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x20)" ( (binary_expression "(int)pppPVar20 + -0x20" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)pppPVar20 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x10)" ( (binary_expression "(int)pppPVar20 + 0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x24) = 0xaf1b3" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x24)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x24)" ( (binary_expression "(int)pppPVar20 + -0x24" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (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                  ();" 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                  ();" 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                  ();" 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                  ();" 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                  ();" (comma_expression "__detail::_Hash_node<std::pair<gold::Relobj*,_unsigned_int>,_true>_>_>_>\n                  ()" 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                  ()" (binary_expression "_true>_>_>_" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > identifier) > (parenthesized_expression "()" ( identifier )))) ;))))) (expression_statement "pGVar12 = (General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);" (assignment_expression "pGVar12 = (General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac)" identifier = (binary_expression "(General_options *)\n                  (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac)" (cast_expression "(General_options *)\n                  (uint)" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac)" ( (binary_expression "*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac" (pointer_expression "*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4)" * (cast_expression "(int *)(*(int *)((int)pppPVar20 + 0x60) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppPVar20 + 0x60) + 4)" ( (binary_expression "*(int *)((int)pppPVar20 + 0x60) + 4" (pointer_expression "*(int *)((int)pppPVar20 + 0x60)" * (cast_expression "(int *)((int)pppPVar20 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x60)" ( (binary_expression "(int)pppPVar20 + 0x60" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000aeee2;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_000aeee0:\n  pGVar12 = (General_options *)0x0;" statement_identifier : (expression_statement "pGVar12 = (General_options *)0x0;" (assignment_expression "pGVar12 = (General_options *)0x0" identifier = (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_000aeee2:\n  uVar14 = (uint)pOVar11->flags_;" statement_identifier : (expression_statement "uVar14 = (uint)pOVar11->flags_;" (assignment_expression "uVar14 = (uint)pOVar11->flags_" identifier = (cast_expression "(uint)pOVar11->flags_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar11->flags_" identifier -> field_identifier))) ;)) (expression_statement "*(General_options **)((int)pppPVar20 + -4) = pGVar12;" (assignment_expression "*(General_options **)((int)pppPVar20 + -4) = pGVar12" (pointer_expression "*(General_options **)((int)pppPVar20 + -4)" * (cast_expression "(General_options **)((int)pppPVar20 + -4)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -4)" ( (binary_expression "(int)pppPVar20 + -4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -8) = *(undefined4 *)((int)pppPVar20 + 0x78);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -8) = *(undefined4 *)((int)pppPVar20 + 0x78)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -8)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x78)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x78)" ( (binary_expression "(int)pppPVar20 + 0x78" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x70);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0xc) = *(undefined4 *)((int)pppPVar20 + 0x70)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x70)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x70)" ( (binary_expression "(int)pppPVar20 + 0x70" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x10) = *(undefined4 *)((int)pppPVar20 + 0x6c);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x10) = *(undefined4 *)((int)pppPVar20 + 0x6c)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x10)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x6c)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x6c)" ( (binary_expression "(int)pppPVar20 + 0x6c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x68);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x14) = *(undefined4 *)((int)pppPVar20 + 0x68)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x14)" ( (binary_expression "(int)pppPVar20 + -0x14" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x68)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x68)" ( (binary_expression "(int)pppPVar20 + 0x68" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 100);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x18) = *(undefined4 *)((int)pppPVar20 + 100)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x18)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x18)" ( (binary_expression "(int)pppPVar20 + -0x18" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 100)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 100)" ( (binary_expression "(int)pppPVar20 + 100" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x1c) = *(undefined4 *)((int)pppPVar20 + 0x60);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x1c) = *(undefined4 *)((int)pppPVar20 + 0x60)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x1c)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x1c)" ( (binary_expression "(int)pppPVar20 + -0x1c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x60)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x60)" ( (binary_expression "(int)pppPVar20 + 0x60" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(Output_section **)((int)pppPVar20 + -0x20) = pOVar11;" (assignment_expression "*(Output_section **)((int)pppPVar20 + -0x20) = pOVar11" (pointer_expression "*(Output_section **)((int)pppPVar20 + -0x20)" * (cast_expression "(Output_section **)((int)pppPVar20 + -0x20)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x20)" ( (binary_expression "(int)pppPVar20 + -0x20" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x24) = 0xaef04;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x24) = 0xaef04" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x24)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x24)" ( (binary_expression "(int)pppPVar20 + -0x24" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "oVar32 = Output_section::add_input_section<32,_true>\n                     (*(Output_section **)((int)pppPVar20 + -0x20),\n                      *(Layout **)((int)pppPVar20 + -0x1c),\n                      *(Sized_relobj_file<32,_true> **)((int)pppPVar20 + -0x18),\n                      *(uint *)((int)pppPVar20 + -0x14),*(char **)((int)pppPVar20 + -0x10),\n                      *(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4));" (comma_expression "oVar32 = Output_section::add_input_section<32,_true>\n                     (*(Output_section **)((int)pppPVar20 + -0x20),\n                      *(Layout **)((int)pppPVar20 + -0x1c),\n                      *(Sized_relobj_file<32,_true> **)((int)pppPVar20 + -0x18),\n                      *(uint *)((int)pppPVar20 + -0x14),*(char **)((int)pppPVar20 + -0x10),\n                      *(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4))" (binary_expression "oVar32 = Output_section::add_input_section<32" (assignment_expression "oVar32 = Output_section" identifier = identifier) (ERROR "::add_input_section" : : identifier) < number_literal) , (binary_expression "_true>\n                     (*(Output_section **)((int)pppPVar20 + -0x20),\n                      *(Layout **)((int)pppPVar20 + -0x1c),\n                      *(Sized_relobj_file<32,_true> **)((int)pppPVar20 + -0x18),\n                      *(uint *)((int)pppPVar20 + -0x14),*(char **)((int)pppPVar20 + -0x10),\n                      *(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4))" identifier > (parenthesized_expression "(*(Output_section **)((int)pppPVar20 + -0x20),\n                      *(Layout **)((int)pppPVar20 + -0x1c),\n                      *(Sized_relobj_file<32,_true> **)((int)pppPVar20 + -0x18),\n                      *(uint *)((int)pppPVar20 + -0x14),*(char **)((int)pppPVar20 + -0x10),\n                      *(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4))" ( (comma_expression "*(Output_section **)((int)pppPVar20 + -0x20),\n                      *(Layout **)((int)pppPVar20 + -0x1c),\n                      *(Sized_relobj_file<32,_true> **)((int)pppPVar20 + -0x18),\n                      *(uint *)((int)pppPVar20 + -0x14),*(char **)((int)pppPVar20 + -0x10),\n                      *(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4)" (pointer_expression "*(Output_section **)((int)pppPVar20 + -0x20)" * (cast_expression "(Output_section **)((int)pppPVar20 + -0x20)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x20)" ( (binary_expression "(int)pppPVar20 + -0x20" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(Layout **)((int)pppPVar20 + -0x1c),\n                      *(Sized_relobj_file<32,_true> **)((int)pppPVar20 + -0x18),\n                      *(uint *)((int)pppPVar20 + -0x14),*(char **)((int)pppPVar20 + -0x10),\n                      *(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4)" (pointer_expression "*(Layout **)((int)pppPVar20 + -0x1c)" * (cast_expression "(Layout **)((int)pppPVar20 + -0x1c)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x1c)" ( (binary_expression "(int)pppPVar20 + -0x1c" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(Sized_relobj_file<32,_true> **)((int)pppPVar20 + -0x18),\n                      *(uint *)((int)pppPVar20 + -0x14),*(char **)((int)pppPVar20 + -0x10),\n                      *(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4)" (pointer_expression "*(Sized_relobj_file<32,_true> **)((int)pppPVar20 + -0x18)" * (call_expression "(Sized_relobj_file<32,_true> **)((int)pppPVar20 + -0x18)" (parenthesized_expression "(Sized_relobj_file<32,_true> **)" ( (comma_expression "Sized_relobj_file<32,_true> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_true> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)pppPVar20 + -0x18)" ( (binary_expression "(int)pppPVar20 + -0x18" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(uint *)((int)pppPVar20 + -0x14),*(char **)((int)pppPVar20 + -0x10),\n                      *(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4)" (pointer_expression "*(uint *)((int)pppPVar20 + -0x14)" * (cast_expression "(uint *)((int)pppPVar20 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x14)" ( (binary_expression "(int)pppPVar20 + -0x14" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(char **)((int)pppPVar20 + -0x10),\n                      *(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4)" (pointer_expression "*(char **)((int)pppPVar20 + -0x10)" * (cast_expression "(char **)((int)pppPVar20 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(Shdr<32,_true> **)((int)pppPVar20 + -0xc),*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4)" (pointer_expression "*(Shdr<32,_true> **)((int)pppPVar20 + -0xc)" * (call_expression "(Shdr<32,_true> **)((int)pppPVar20 + -0xc)" (parenthesized_expression "(Shdr<32,_true> **)" ( (comma_expression "Shdr<32,_true> **" (binary_expression "Shdr<32" identifier < number_literal) , (binary_expression "_true> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(uint *)((int)pppPVar20 + -8),\n                      *(bool *)((int)pppPVar20 + -4)" (pointer_expression "*(uint *)((int)pppPVar20 + -8)" * (cast_expression "(uint *)((int)pppPVar20 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar20 + -4)" * (cast_expression "(bool *)((int)pppPVar20 + -4)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -4)" ( (binary_expression "(int)pppPVar20 + -4" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))))))))) )))) ;) (expression_statement "**(off_t **)((int)pppPVar20 + 0x80) = oVar32;" (assignment_expression "**(off_t **)((int)pppPVar20 + 0x80) = oVar32" (pointer_expression "**(off_t **)((int)pppPVar20 + 0x80)" * (pointer_expression "*(off_t **)((int)pppPVar20 + 0x80)" * (cast_expression "(off_t **)((int)pppPVar20 + 0x80)" ( (type_descriptor "off_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + 0x80)" ( (binary_expression "(int)pppPVar20 + 0x80" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) = identifier) ;) (if_statement "if (((uVar14 & 2) != 0) && (((uVar14 ^ (uint)pOVar11->flags_) & 5) != 0)) {\n    *(undefined4 *)((int)pppPVar20 + -8) = 0;\n    *(Output_section **)((int)pppPVar20 + -0xc) = pOVar11;\n    *(undefined4 *)((int)pppPVar20 + -0x10) = *(undefined4 *)((int)pppPVar20 + 0x60);\n    *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaef32;\n    OVar13 = default_section_order\n                       (*(Layout **)((int)pppPVar20 + -0x10),\n                        *(Output_section **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8));\n    pOVar11->order_ = OVar13;\n  }" if (parenthesized_expression "(((uVar14 & 2) != 0) && (((uVar14 ^ (uint)pOVar11->flags_) & 5) != 0))" ( (binary_expression "((uVar14 & 2) != 0) && (((uVar14 ^ (uint)pOVar11->flags_) & 5) != 0)" (parenthesized_expression "((uVar14 & 2) != 0)" ( (binary_expression "(uVar14 & 2) != 0" (parenthesized_expression "(uVar14 & 2)" ( (binary_expression "uVar14 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uVar14 ^ (uint)pOVar11->flags_) & 5) != 0)" ( (binary_expression "((uVar14 ^ (uint)pOVar11->flags_) & 5) != 0" (parenthesized_expression "((uVar14 ^ (uint)pOVar11->flags_) & 5)" ( (binary_expression "(uVar14 ^ (uint)pOVar11->flags_) & 5" (parenthesized_expression "(uVar14 ^ (uint)pOVar11->flags_)" ( (binary_expression "uVar14 ^ (uint)pOVar11->flags_" identifier ^ (cast_expression "(uint)pOVar11->flags_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar11->flags_" identifier -> field_identifier))) )) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    *(undefined4 *)((int)pppPVar20 + -8) = 0;\n    *(Output_section **)((int)pppPVar20 + -0xc) = pOVar11;\n    *(undefined4 *)((int)pppPVar20 + -0x10) = *(undefined4 *)((int)pppPVar20 + 0x60);\n    *(undefined4 *)((int)pppPVar20 + -0x14) = 0xaef32;\n    OVar13 = default_section_order\n                       (*(Layout **)((int)pppPVar20 + -0x10),\n                        *(Output_section **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8));\n    pOVar11->order_ = OVar13;\n  }" { (expression_statement "*(undefined4 *)((int)pppPVar20 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -8) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -8)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(Output_section **)((int)pppPVar20 + -0xc) = pOVar11;" (assignment_expression "*(Output_section **)((int)pppPVar20 + -0xc) = pOVar11" (pointer_expression "*(Output_section **)((int)pppPVar20 + -0xc)" * (cast_expression "(Output_section **)((int)pppPVar20 + -0xc)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x10) = *(undefined4 *)((int)pppPVar20 + 0x60);" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x10) = *(undefined4 *)((int)pppPVar20 + 0x60)" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x10)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar20 + 0x60)" * (cast_expression "(undefined4 *)((int)pppPVar20 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x60)" ( (binary_expression "(int)pppPVar20 + 0x60" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar20 + -0x14) = 0xaef32;" (assignment_expression "*(undefined4 *)((int)pppPVar20 + -0x14) = 0xaef32" (pointer_expression "*(undefined4 *)((int)pppPVar20 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar20 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -0x14)" ( (binary_expression "(int)pppPVar20 + -0x14" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "OVar13 = default_section_order\n                       (*(Layout **)((int)pppPVar20 + -0x10),\n                        *(Output_section **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8));" (assignment_expression "OVar13 = default_section_order\n                       (*(Layout **)((int)pppPVar20 + -0x10),\n                        *(Output_section **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8))" identifier = (call_expression "default_section_order\n                       (*(Layout **)((int)pppPVar20 + -0x10),\n                        *(Output_section **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8))" identifier (argument_list "(*(Layout **)((int)pppPVar20 + -0x10),\n                        *(Output_section **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8))" ( (pointer_expression "*(Layout **)((int)pppPVar20 + -0x10)" * (cast_expression "(Layout **)((int)pppPVar20 + -0x10)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0x10)" ( (binary_expression "(int)pppPVar20 + -0x10" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Output_section **)((int)pppPVar20 + -0xc)" * (cast_expression "(Output_section **)((int)pppPVar20 + -0xc)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar20 + -0xc)" ( (binary_expression "(int)pppPVar20 + -0xc" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar20 + -8)" * (cast_expression "(bool *)((int)pppPVar20 + -8)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + -8)" ( (binary_expression "(int)pppPVar20 + -8" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pOVar11->order_ = OVar13;" (assignment_expression "pOVar11->order_ = OVar13" (field_expression "pOVar11->order_" identifier -> field_identifier) = identifier) ;) })) (expression_statement "*(undefined1 *)(*(int *)((int)pppPVar20 + 0x60) + 0x1c4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)((int)pppPVar20 + 0x60) + 0x1c4) = 1" (pointer_expression "*(undefined1 *)(*(int *)((int)pppPVar20 + 0x60) + 0x1c4)" * (cast_expression "(undefined1 *)(*(int *)((int)pppPVar20 + 0x60) + 0x1c4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppPVar20 + 0x60) + 0x1c4)" ( (binary_expression "*(int *)((int)pppPVar20 + 0x60) + 0x1c4" (pointer_expression "*(int *)((int)pppPVar20 + 0x60)" * (cast_expression "(int *)((int)pppPVar20 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar20 + 0x60)" ( (binary_expression "(int)pppPVar20 + 0x60" (cast_expression "(int)pppPVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) = number_literal) ;) (return_statement "return pOVar11;" return identifier ;) }))
(translation_unit "int FUN_000aec30(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,\n                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char cVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  size_t sVar10;\n  byte bVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  int **ppiVar15;\n  int **ppiVar16;\n  int **ppiVar17;\n  byte *pbVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  char *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  int unaff_retaddr;\n  int *apiStackY_8c [3];\n  int *apiStack_60 [8];\n  int *local_40 [3];\n  undefined1 local_34 [4];\n  byte local_30 [28];\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0xaec39;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar6 = FUN_000a77e0(param_1,param_2,param_4);\n  ppiVar16 = apiStack_60 + 1;\n  ppiVar15 = apiStack_60 + 1;\n  if (cVar6 == '\0') {\n    return 0;\n  }\n  uVar9 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar9 == 0) goto LAB_000af218;\n  if (*(char *)(uVar9 + 0x318d) == '\0') {\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }\n  else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000aedb0:\n  piVar13 = (int *)ppiVar16[0x18][1];\n  piVar14 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar16[1] = piVar13;\n  bVar11 = *(byte *)(piVar13 + 0x2b);\n  uVar9 = (uint)bVar11;\n  if (bVar11 != 0) {\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }\n  if (piVar14 == (int *)0x0) {\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }\n  bVar22 = false;\n  bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';\n  if (!bVar25) goto LAB_000af100;\n  iVar12 = 7;\n  pbVar18 = (byte *)".ctors.";\n  pbVar20 = (byte *)ppiVar16[0x1b];\n  do {\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  } while (bVar25);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar25) == bVar22;\n  if (bVar22) {\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }\nLAB_000aeee0:\n  uVar9 = 0;\nLAB_000aeee2:\n  uVar1 = *(uint *)(iVar8 + 0x54);\n  *(uint *)((int)ppiVar16 + -4) = uVar9;\n  *(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);\n  *(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);\n  *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);\n  *(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);\n  *(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);\n  *(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);\n  *(int *)((int)ppiVar16 + -0x20) = iVar8;\n  *(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;\n  uVar28 = FUN_00126020();\n  **(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;\n  return iVar8;\n}\n\n" (function_definition "int FUN_000aec30(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,\n                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char cVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  size_t sVar10;\n  byte bVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  int **ppiVar15;\n  int **ppiVar16;\n  int **ppiVar17;\n  byte *pbVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  char *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  int unaff_retaddr;\n  int *apiStackY_8c [3];\n  int *apiStack_60 [8];\n  int *local_40 [3];\n  undefined1 local_34 [4];\n  byte local_30 [28];\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0xaec39;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar6 = FUN_000a77e0(param_1,param_2,param_4);\n  ppiVar16 = apiStack_60 + 1;\n  ppiVar15 = apiStack_60 + 1;\n  if (cVar6 == '\0') {\n    return 0;\n  }\n  uVar9 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar9 == 0) goto LAB_000af218;\n  if (*(char *)(uVar9 + 0x318d) == '\0') {\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }\n  else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000aedb0:\n  piVar13 = (int *)ppiVar16[0x18][1];\n  piVar14 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar16[1] = piVar13;\n  bVar11 = *(byte *)(piVar13 + 0x2b);\n  uVar9 = (uint)bVar11;\n  if (bVar11 != 0) {\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }\n  if (piVar14 == (int *)0x0) {\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }\n  bVar22 = false;\n  bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';\n  if (!bVar25) goto LAB_000af100;\n  iVar12 = 7;\n  pbVar18 = (byte *)".ctors.";\n  pbVar20 = (byte *)ppiVar16[0x1b];\n  do {\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  } while (bVar25);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar25) == bVar22;\n  if (bVar22) {\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }\nLAB_000aeee0:\n  uVar9 = 0;\nLAB_000aeee2:\n  uVar1 = *(uint *)(iVar8 + 0x54);\n  *(uint *)((int)ppiVar16 + -4) = uVar9;\n  *(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);\n  *(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);\n  *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);\n  *(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);\n  *(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);\n  *(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);\n  *(int *)((int)ppiVar16 + -0x20) = iVar8;\n  *(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;\n  uVar28 = FUN_00126020();\n  **(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;\n  return iVar8;\n}" primitive_type (function_declarator "FUN_000aec30(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,\n                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)" identifier (parameter_list "(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,\n                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined4 *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char cVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  size_t sVar10;\n  byte bVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  int **ppiVar15;\n  int **ppiVar16;\n  int **ppiVar17;\n  byte *pbVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  char *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  int unaff_retaddr;\n  int *apiStackY_8c [3];\n  int *apiStack_60 [8];\n  int *local_40 [3];\n  undefined1 local_34 [4];\n  byte local_30 [28];\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0xaec39;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar6 = FUN_000a77e0(param_1,param_2,param_4);\n  ppiVar16 = apiStack_60 + 1;\n  ppiVar15 = apiStack_60 + 1;\n  if (cVar6 == '\0') {\n    return 0;\n  }\n  uVar9 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar9 == 0) goto LAB_000af218;\n  if (*(char *)(uVar9 + 0x318d) == '\0') {\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }\n  else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000aedb0:\n  piVar13 = (int *)ppiVar16[0x18][1];\n  piVar14 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar16[1] = piVar13;\n  bVar11 = *(byte *)(piVar13 + 0x2b);\n  uVar9 = (uint)bVar11;\n  if (bVar11 != 0) {\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }\n  if (piVar14 == (int *)0x0) {\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }\n  bVar22 = false;\n  bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';\n  if (!bVar25) goto LAB_000af100;\n  iVar12 = 7;\n  pbVar18 = (byte *)".ctors.";\n  pbVar20 = (byte *)ppiVar16[0x1b];\n  do {\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  } while (bVar25);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar25) == bVar22;\n  if (bVar22) {\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }\nLAB_000aeee0:\n  uVar9 = 0;\nLAB_000aeee2:\n  uVar1 = *(uint *)(iVar8 + 0x54);\n  *(uint *)((int)ppiVar16 + -4) = uVar9;\n  *(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);\n  *(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);\n  *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);\n  *(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);\n  *(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);\n  *(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);\n  *(int *)((int)ppiVar16 + -0x20) = iVar8;\n  *(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;\n  uVar28 = FUN_00126020();\n  **(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;\n  return iVar8;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int **ppiVar15;" primitive_type (pointer_declarator "**ppiVar15" * (pointer_declarator "*ppiVar15" * identifier)) ;) (declaration "int **ppiVar16;" primitive_type (pointer_declarator "**ppiVar16" * (pointer_declarator "*ppiVar16" * identifier)) ;) (declaration "int **ppiVar17;" primitive_type (pointer_declarator "**ppiVar17" * (pointer_declarator "*ppiVar17" * identifier)) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "undefined **ppuVar19;" type_identifier (pointer_declarator "**ppuVar19" * (pointer_declarator "*ppuVar19" * identifier)) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "undefined1 uVar26;" type_identifier identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "undefined8 uVar28;" type_identifier identifier ;) (declaration "int unaff_retaddr;" primitive_type identifier ;) (declaration "int *apiStackY_8c [3];" primitive_type (pointer_declarator "*apiStackY_8c [3]" * (array_declarator "apiStackY_8c [3]" identifier [ number_literal ])) ;) (declaration "int *apiStack_60 [8];" primitive_type (pointer_declarator "*apiStack_60 [8]" * (array_declarator "apiStack_60 [8]" identifier [ number_literal ])) ;) (declaration "int *local_40 [3];" primitive_type (pointer_declarator "*local_40 [3]" * (array_declarator "local_40 [3]" identifier [ number_literal ])) ;) (declaration "undefined1 local_34 [4];" type_identifier (array_declarator "local_34 [4]" identifier [ number_literal ]) ;) (declaration "byte local_30 [28];" type_identifier (array_declarator "local_30 [28]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xaec39;" (assignment_expression "uStack_14 = 0xaec39" identifier = number_literal) ;) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "param_9[1] = 0;" (assignment_expression "param_9[1] = 0" (subscript_expression "param_9[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "apiStack_60[0] = param_5;" (assignment_expression "apiStack_60[0] = param_5" (subscript_expression "apiStack_60[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "cVar6 = FUN_000a77e0(param_1,param_2,param_4);" (assignment_expression "cVar6 = FUN_000a77e0(param_1,param_2,param_4)" identifier = (call_expression "FUN_000a77e0(param_1,param_2,param_4)" identifier (argument_list "(param_1,param_2,param_4)" ( identifier , identifier , identifier )))) ;) (expression_statement "ppiVar16 = apiStack_60 + 1;" (assignment_expression "ppiVar16 = apiStack_60 + 1" identifier = (binary_expression "apiStack_60 + 1" identifier + number_literal)) ;) (expression_statement "ppiVar15 = apiStack_60 + 1;" (assignment_expression "ppiVar15 = apiStack_60 + 1" identifier = (binary_expression "apiStack_60 + 1" identifier + number_literal)) ;) (if_statement "if (cVar6 == '\0') {\n    return 0;\n  }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar9 = *(uint *)(DAT_0038f378 + 8);" (assignment_expression "uVar9 = *(uint *)(DAT_0038f378 + 8)" identifier = (pointer_expression "*(uint *)(DAT_0038f378 + 8)" * (cast_expression "(uint *)(DAT_0038f378 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 8)" ( (binary_expression "DAT_0038f378 + 8" identifier + number_literal) ))))) ;) (if_statement "if (uVar9 == 0) goto LAB_000af218;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000af218;" goto statement_identifier ;)) (if_statement "if (*(char *)(uVar9 + 0x318d) == '\0') {\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }\n  else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" if (parenthesized_expression "(*(char *)(uVar9 + 0x318d) == '\0')" ( (binary_expression "*(char *)(uVar9 + 0x318d) == '\0'" (pointer_expression "*(char *)(uVar9 + 0x318d)" * (cast_expression "(char *)(uVar9 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x318d)" ( (binary_expression "uVar9 + 0x318d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }" { (labeled_statement "LAB_000aeca9:\n    piVar13 = &DAT_0038f378;" statement_identifier : (expression_statement "piVar13 = &DAT_0038f378;" (assignment_expression "piVar13 = &DAT_0038f378" identifier = (pointer_expression "&DAT_0038f378" & identifier)) ;)) (if_statement "if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }" if (parenthesized_expression "(*(char *)(uVar9 + 0x5871) != '\0')" ( (binary_expression "*(char *)(uVar9 + 0x5871) != '\0'" (pointer_expression "*(char *)(uVar9 + 0x5871)" * (cast_expression "(char *)(uVar9 + 0x5871)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 0x5871)" ( (binary_expression "uVar9 + 0x5871" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }" { (expression_statement "uVar24 = apiStack_60 + 1 < (int **)0x4;" (assignment_expression "uVar24 = apiStack_60 + 1 < (int **)0x4" identifier = (binary_expression "apiStack_60 + 1 < (int **)0x4" (binary_expression "apiStack_60 + 1" identifier + number_literal) < (cast_expression "(int **)0x4" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ;) (expression_statement "uVar26 = &stack0x00000000 == (undefined1 *)0x60;" (assignment_expression "uVar26 = &stack0x00000000 == (undefined1 *)0x60" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x60" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x60" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "apiStack_60[2] = &DAT_0038f378;" (assignment_expression "apiStack_60[2] = &DAT_0038f378" (subscript_expression "apiStack_60[2]" identifier [ number_literal ]) = (pointer_expression "&DAT_0038f378" & identifier)) ;) (expression_statement "(**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);" (call_expression "(**(code **)(*param_2 + 0x40))(local_34,param_2,param_3)" (parenthesized_expression "(**(code **)(*param_2 + 0x40))" ( (pointer_expression "**(code **)(*param_2 + 0x40)" * (pointer_expression "*(code **)(*param_2 + 0x40)" * (cast_expression "(code **)(*param_2 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x40)" ( (binary_expression "*param_2 + 0x40" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(local_34,param_2,param_3)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = 0xe;" (assignment_expression "iVar8 = 0xe" identifier = number_literal) ;) (expression_statement "apiStack_60[2] = (int *)0x28a53f;" (assignment_expression "apiStack_60[2] = (int *)0x28a53f" (subscript_expression "apiStack_60[2]" identifier [ number_literal ]) = (cast_expression "(int *)0x28a53f" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar18 = (byte *)".text.unlikely";" (assignment_expression "pbVar18 = (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 "pbVar20 = (byte *)local_40[2];" (assignment_expression "pbVar20 = (byte *)local_40[2]" identifier = (cast_expression "(byte *)local_40[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[2]" identifier [ number_literal ]))) ;) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);" do (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = *pbVar18 < *pbVar20;" (assignment_expression "uVar24 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "uVar26 = *pbVar18 == *pbVar20;" (assignment_expression "uVar26 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar26)" ( (cast_expression "(bool)uVar26" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "ppiVar15 = apiStack_60;" (assignment_expression "ppiVar15 = apiStack_60" identifier = identifier) ;) (if_statement "if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }" if (parenthesized_expression "((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24)" ( (binary_expression "(!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar26)" ( (binary_expression "!(bool)uVar24 && !(bool)uVar26" (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar26" ! (cast_expression "(bool)uVar26" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }" { (if_statement "if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }" if (parenthesized_expression "((byte *)local_40[2] != local_30)" ( (binary_expression "(byte *)local_40[2] != local_30" (cast_expression "(byte *)local_40[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[2]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n          FUN_001e6db0(local_40[2]);\n        }" { (expression_statement "FUN_001e6db0(local_40[2]);" (call_expression "FUN_001e6db0(local_40[2])" identifier (argument_list "(local_40[2])" ( (subscript_expression "local_40[2]" identifier [ number_literal ]) ))) ;) })) (expression_statement "ppiVar17 = apiStack_60;" (assignment_expression "ppiVar17 = apiStack_60" identifier = identifier) ;) (expression_statement "uVar9 = *(uint *)(*param_4 + 8);" (assignment_expression "uVar9 = *(uint *)(*param_4 + 8)" identifier = (pointer_expression "*(uint *)(*param_4 + 8)" * (cast_expression "(uint *)(*param_4 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_4 + 8)" ( (binary_expression "*param_4 + 8" (pointer_expression "*param_4" * identifier) + number_literal) ))))) ;) (expression_statement "uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;" (assignment_expression "uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal))) ;) (if_statement "if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;" if (parenthesized_expression "(*(int *)(*apiStack_60[1] + 8) == 0)" ( (binary_expression "*(int *)(*apiStack_60[1] + 8) == 0" (pointer_expression "*(int *)(*apiStack_60[1] + 8)" * (cast_expression "(int *)(*apiStack_60[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*apiStack_60[1] + 8)" ( (binary_expression "*apiStack_60[1] + 8" (pointer_expression "*apiStack_60[1]" * (subscript_expression "apiStack_60[1]" identifier [ number_literal ])) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000af2db;" goto statement_identifier ;)) (expression_statement "uVar4 = uVar1 & 0xfffff50f;" (assignment_expression "uVar4 = uVar1 & 0xfffff50f" identifier = (binary_expression "uVar1 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }" if (parenthesized_expression "(*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0')" ( (binary_expression "*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0'" (pointer_expression "*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d)" * (cast_expression "(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*apiStack_60[1] + 8) + 0x318d)" ( (binary_expression "*(int *)(*apiStack_60[1] + 8) + 0x318d" (pointer_expression "*(int *)(*apiStack_60[1] + 8)" * (cast_expression "(int *)(*apiStack_60[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*apiStack_60[1] + 8)" ( (binary_expression "*apiStack_60[1] + 8" (pointer_expression "*apiStack_60[1]" * (subscript_expression "apiStack_60[1]" identifier [ number_literal ])) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          uVar4 = uVar1 & 0xfffff58f;\n        }" { (expression_statement "uVar4 = uVar1 & 0xfffff58f;" (assignment_expression "uVar4 = uVar1 & 0xfffff58f" identifier = (binary_expression "uVar1 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);" (assignment_expression "uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34)" identifier = (call_expression "FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34)" identifier (argument_list "(unaff_retaddr + 8,apiStack_60[2],1,local_34)" ( (binary_expression "unaff_retaddr + 8" identifier + number_literal) , (subscript_expression "apiStack_60[2]" identifier [ number_literal ]) , number_literal , identifier )))) ;) (expression_statement "iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);" (assignment_expression "iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0)" identifier = (call_expression "FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0)" identifier (argument_list "(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0)" ( identifier , identifier , (subscript_expression "local_40[2]" identifier [ number_literal ]) , identifier , (binary_expression "uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar4 | (uVar9 & 0xff00) << 8" identifier | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal)) , number_literal , number_literal , number_literal )))) ;) (expression_statement "ppiVar16 = apiStack_60;" (assignment_expression "ppiVar16 = apiStack_60" identifier = identifier) ;) (expression_statement "*(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;" (assignment_expression "*(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar8 + 0x92)" * (cast_expression "(byte *)(iVar8 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x92)" ( (binary_expression "iVar8 + 0x92" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar8 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar8 + 0x92)" * (cast_expression "(byte *)(iVar8 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x92)" ( (binary_expression "iVar8 + 0x92" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_000aedb0;" goto statement_identifier ;) })) (expression_statement "piVar13 = apiStack_60[1];" (assignment_expression "piVar13 = apiStack_60[1]" identifier = (subscript_expression "apiStack_60[1]" identifier [ number_literal ])) ;) (if_statement "if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }" if (parenthesized_expression "((byte *)local_40[2] != local_30)" ( (binary_expression "(byte *)local_40[2] != local_30" (cast_expression "(byte *)local_40[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_40[2]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }" { (expression_statement "FUN_001e6db0(local_40[2]);" (call_expression "FUN_001e6db0(local_40[2])" identifier (argument_list "(local_40[2])" ( (subscript_expression "local_40[2]" identifier [ number_literal ]) ))) ;) (expression_statement "ppiVar15 = apiStack_60;" (assignment_expression "ppiVar15 = apiStack_60" identifier = identifier) ;) (expression_statement "piVar13 = apiStack_60[1];" (assignment_expression "piVar13 = apiStack_60[1]" identifier = (subscript_expression "apiStack_60[1]" identifier [ number_literal ])) ;) })) })) (expression_statement "ppiVar15[1] = piVar13;" (assignment_expression "ppiVar15[1] = piVar13" (subscript_expression "ppiVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppiVar15[10] = ppiVar15[0x19];" (assignment_expression "ppiVar15[10] = ppiVar15[0x19]" (subscript_expression "ppiVar15[10]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x19]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[0xb] = ppiVar15[0x1a];" (assignment_expression "ppiVar15[0xb] = ppiVar15[0x1a]" (subscript_expression "ppiVar15[0xb]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x1a]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-2] = (int *)local_34;" (assignment_expression "ppiVar15[-2] = (int *)local_34" (subscript_expression "ppiVar15[-2]" identifier [ number_literal ]) = (cast_expression "(int *)local_34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar15[-3] = ppiVar15[0x18] + 0x81;" (assignment_expression "ppiVar15[-3] = ppiVar15[0x18] + 0x81" (subscript_expression "ppiVar15[-3]" identifier [ number_literal ]) = (binary_expression "ppiVar15[0x18] + 0x81" (subscript_expression "ppiVar15[0x18]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "ppiVar15[-4] = (int *)(ppiVar15 + 7);" (assignment_expression "ppiVar15[-4] = (int *)(ppiVar15 + 7)" (subscript_expression "ppiVar15[-4]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar15 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar15 + 7)" ( (binary_expression "ppiVar15 + 7" identifier + number_literal) )))) ;) (expression_statement "ppiVar15[-5] = (int *)0xaece7;" (assignment_expression "ppiVar15[-5] = (int *)0xaece7" (subscript_expression "ppiVar15[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0xaece7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_000a9000();" (call_expression "FUN_000a9000()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar13 = ppiVar15[6];" (assignment_expression "piVar13 = ppiVar15[6]" identifier = (subscript_expression "ppiVar15[6]" identifier [ number_literal ])) ;) (expression_statement "ppiVar17 = ppiVar15 + -1;" (assignment_expression "ppiVar17 = ppiVar15 + -1" identifier = (binary_expression "ppiVar15 + -1" identifier + number_literal)) ;) (expression_statement "uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);" (assignment_expression "uVar9 = *(uint *)(*ppiVar15[0x1b] + 8)" identifier = (pointer_expression "*(uint *)(*ppiVar15[0x1b] + 8)" * (cast_expression "(uint *)(*ppiVar15[0x1b] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppiVar15[0x1b] + 8)" ( (binary_expression "*ppiVar15[0x1b] + 8" (pointer_expression "*ppiVar15[0x1b]" * (subscript_expression "ppiVar15[0x1b]" identifier [ number_literal ])) + number_literal) ))))) ;) (expression_statement "uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;" (assignment_expression "uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal))) ;) (expression_statement "uVar4 = (uVar9 & 0xff00) << 8;" (assignment_expression "uVar4 = (uVar9 & 0xff00) << 8" identifier = (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) ;) (if_statement "if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }" if (parenthesized_expression "(piVar13 == ppiVar15[0x17] + 0x82)" ( (binary_expression "piVar13 == ppiVar15[0x17] + 0x82" identifier == (binary_expression "ppiVar15[0x17] + 0x82" (subscript_expression "ppiVar15[0x17]" identifier [ number_literal ]) + number_literal)) )) (compound_statement "{\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "ppiVar15[-3] = (int *)0x1;" (assignment_expression "ppiVar15[-3] = (int *)0x1" (subscript_expression "ppiVar15[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-4] = (int *)0x0;" (assignment_expression "ppiVar15[-4] = (int *)0x0" (subscript_expression "ppiVar15[-4]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-5] = (int *)0x0;" (assignment_expression "ppiVar15[-5] = (int *)0x0" (subscript_expression "ppiVar15[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-6] = (int *)0x0;" (assignment_expression "ppiVar15[-6] = (int *)0x0" (subscript_expression "ppiVar15[-6]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-7] = (int *)0x1;" (assignment_expression "ppiVar15[-7] = (int *)0x1" (subscript_expression "ppiVar15[-7]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-8] = (int *)0x0;" (assignment_expression "ppiVar15[-8] = (int *)0x0" (subscript_expression "ppiVar15[-8]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);" (assignment_expression "ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18)" (subscript_expression "ppiVar15[-9]" identifier [ number_literal ]) = (cast_expression "(int *)(uVar1 | uVar4 | uVar9 << 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 | uVar4 | uVar9 << 0x18)" ( (binary_expression "uVar1 | uVar4 | uVar9 << 0x18" (binary_expression "uVar1 | uVar4" identifier | identifier) | (binary_expression "uVar9 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "ppiVar15[-10] = ppiVar15[0x1c];" (assignment_expression "ppiVar15[-10] = ppiVar15[0x1c]" (subscript_expression "ppiVar15[-10]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x1c]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-0xb] = ppiVar15[0x1a];" (assignment_expression "ppiVar15[-0xb] = ppiVar15[0x1a]" (subscript_expression "ppiVar15[-0xb]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x1a]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-0xc] = ppiVar15[0x18];" (assignment_expression "ppiVar15[-0xc] = ppiVar15[0x18]" (subscript_expression "ppiVar15[-0xc]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x18]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-0xd] = ppiVar15[0x17];" (assignment_expression "ppiVar15[-0xd] = ppiVar15[0x17]" (subscript_expression "ppiVar15[-0xd]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x17]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-0xe] = (int *)0xaf062;" (assignment_expression "ppiVar15[-0xe] = (int *)0xaf062" (subscript_expression "ppiVar15[-0xe]" identifier [ number_literal ]) = (cast_expression "(int *)0xaf062" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = FUN_0009fff0();" (assignment_expression "iVar8 = FUN_0009fff0()" identifier = (call_expression "FUN_0009fff0()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppiVar16 = ppiVar15 + -1;" (assignment_expression "ppiVar16 = ppiVar15 + -1" identifier = (binary_expression "ppiVar15 + -1" identifier + number_literal)) ;) (expression_statement "apiStack_60[1] = *ppiVar15;" (assignment_expression "apiStack_60[1] = *ppiVar15" (subscript_expression "apiStack_60[1]" identifier [ number_literal ]) = (pointer_expression "*ppiVar15" * identifier)) ;) (if_statement "if (iVar8 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }" else (compound_statement "{\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }" { (expression_statement "iVar8 = *(int *)(**ppiVar15 + 8);" (assignment_expression "iVar8 = *(int *)(**ppiVar15 + 8)" identifier = (pointer_expression "*(int *)(**ppiVar15 + 8)" * (cast_expression "(int *)(**ppiVar15 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**ppiVar15 + 8)" ( (binary_expression "**ppiVar15 + 8" (pointer_expression "**ppiVar15" * (pointer_expression "*ppiVar15" * identifier)) + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }" { (labeled_statement "LAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;" statement_identifier : (expression_statement "*(code **)((int)ppiVar17 + -4) = FUN_000af2e0;" (assignment_expression "*(code **)((int)ppiVar17 + -4) = FUN_000af2e0" (pointer_expression "*(code **)((int)ppiVar17 + -4)" * (cast_expression "(code **)((int)ppiVar17 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar17 + -4)" ( (binary_expression "(int)ppiVar17 + -4" (cast_expression "(int)ppiVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "FUN_00096010();" (call_expression "FUN_00096010()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar5 = uVar1 & 0xfffff50f;" (assignment_expression "uVar5 = uVar1 & 0xfffff50f" identifier = (binary_expression "uVar1 & 0xfffff50f" identifier & number_literal)) ;) (if_statement "if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }" if (parenthesized_expression "(*(char *)(iVar8 + 0x318d) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x318d)" * (cast_expression "(char *)(iVar8 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x318d)" ( (binary_expression "iVar8 + 0x318d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar5 = uVar1 & 0xfffff58f;\n      }" { (expression_statement "uVar5 = uVar1 & 0xfffff58f;" (assignment_expression "uVar5 = uVar1 & 0xfffff58f" identifier = (binary_expression "uVar1 & 0xfffff58f" identifier & number_literal)) ;) })) (expression_statement "puVar2 = (undefined4 *)piVar13[6];" (assignment_expression "puVar2 = (undefined4 *)piVar13[6]" identifier = (cast_expression "(undefined4 *)piVar13[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar13[6]" identifier [ number_literal ]))) ;) (expression_statement "*ppiVar15 = *ppiVar15;" (assignment_expression "*ppiVar15 = *ppiVar15" (pointer_expression "*ppiVar15" * identifier) = (pointer_expression "*ppiVar15" * identifier)) ;) (expression_statement "ppiVar15[-2] = (int *)local_34;" (assignment_expression "ppiVar15[-2] = (int *)local_34" (subscript_expression "ppiVar15[-2]" identifier [ number_literal ]) = (cast_expression "(int *)local_34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar15[-3] = (int *)0x1;" (assignment_expression "ppiVar15[-3] = (int *)0x1" (subscript_expression "ppiVar15[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-4] = (int *)*puVar2;" (assignment_expression "ppiVar15[-4] = (int *)*puVar2" (subscript_expression "ppiVar15[-4]" identifier [ number_literal ]) = (cast_expression "(int *)*puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "ppiVar15[-5] = ppiVar15[0x17] + 2;" (assignment_expression "ppiVar15[-5] = ppiVar15[0x17] + 2" (subscript_expression "ppiVar15[-5]" identifier [ number_literal ]) = (binary_expression "ppiVar15[0x17] + 2" (subscript_expression "ppiVar15[0x17]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "ppiVar15[-6] = (int *)0xaed4e;" (assignment_expression "ppiVar15[-6] = (int *)0xaed4e" (subscript_expression "ppiVar15[-6]" identifier [ number_literal ]) = (cast_expression "(int *)0xaed4e" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar7 = FUN_00174930();" (assignment_expression "uVar7 = FUN_00174930()" identifier = (call_expression "FUN_00174930()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppiVar15[-2] = (int *)0x0;" (assignment_expression "ppiVar15[-2] = (int *)0x0" (subscript_expression "ppiVar15[-2]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-3] = (int *)0x0;" (assignment_expression "ppiVar15[-3] = (int *)0x0" (subscript_expression "ppiVar15[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-4] = (int *)0x0;" (assignment_expression "ppiVar15[-4] = (int *)0x0" (subscript_expression "ppiVar15[-4]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);" (assignment_expression "ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18)" (subscript_expression "ppiVar15[-5]" identifier [ number_literal ]) = (cast_expression "(int *)(uVar5 | uVar4 | uVar9 << 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 | uVar4 | uVar9 << 0x18)" ( (binary_expression "uVar5 | uVar4 | uVar9 << 0x18" (binary_expression "uVar5 | uVar4" identifier | identifier) | (binary_expression "uVar9 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "ppiVar15[-6] = ppiVar15[0x1c];" (assignment_expression "ppiVar15[-6] = ppiVar15[0x1c]" (subscript_expression "ppiVar15[-6]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x1c]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-7] = ppiVar15[9];" (assignment_expression "ppiVar15[-7] = ppiVar15[9]" (subscript_expression "ppiVar15[-7]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[9]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-8] = (int *)uVar7;" (assignment_expression "ppiVar15[-8] = (int *)uVar7" (subscript_expression "ppiVar15[-8]" identifier [ number_literal ]) = (cast_expression "(int *)uVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar15[-9] = ppiVar15[0x17];" (assignment_expression "ppiVar15[-9] = ppiVar15[0x17]" (subscript_expression "ppiVar15[-9]" identifier [ number_literal ]) = (subscript_expression "ppiVar15[0x17]" identifier [ number_literal ])) ;) (expression_statement "ppiVar15[-10] = (int *)0xaed6c;" (assignment_expression "ppiVar15[-10] = (int *)0xaed6c" (subscript_expression "ppiVar15[-10]" identifier [ number_literal ]) = (cast_expression "(int *)0xaed6c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = FUN_0009fd60();" (assignment_expression "iVar8 = FUN_0009fd60()" identifier = (call_expression "FUN_0009fd60()" identifier (argument_list "()" ( )))) ;) (expression_statement "apiStack_60[1] = *ppiVar15;" (assignment_expression "apiStack_60[1] = *ppiVar15" (subscript_expression "apiStack_60[1]" identifier [ number_literal ]) = (pointer_expression "*ppiVar15" * identifier)) ;) (expression_statement "ppiVar16 = ppiVar15 + -1;" (assignment_expression "ppiVar16 = ppiVar15 + -1" identifier = (binary_expression "ppiVar15 + -1" identifier + number_literal)) ;) (if_statement "if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }" if (parenthesized_expression "(-1 < (char)*(byte *)(iVar8 + 0x92))" ( (binary_expression "-1 < (char)*(byte *)(iVar8 + 0x92)" number_literal < (cast_expression "(char)*(byte *)(iVar8 + 0x92)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(iVar8 + 0x92)" * (cast_expression "(byte *)(iVar8 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x92)" ( (binary_expression "iVar8 + 0x92" identifier + number_literal) )))))) )) (compound_statement "{\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }" { (expression_statement "*(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;" (assignment_expression "*(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar8 + 0x92)" * (cast_expression "(byte *)(iVar8 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x92)" ( (binary_expression "iVar8 + 0x92" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar8 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar8 + 0x92)" * (cast_expression "(byte *)(iVar8 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x92)" ( (binary_expression "iVar8 + 0x92" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "iVar12 = piVar13[6];" (assignment_expression "iVar12 = piVar13[6]" identifier = (subscript_expression "piVar13[6]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar7 = *(undefined4 *)(iVar12 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);" (assignment_expression "*(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4)" (pointer_expression "*(undefined4 *)(iVar8 + 0x9c)" * (cast_expression "(undefined4 *)(iVar8 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x9c)" ( (binary_expression "iVar8 + 0x9c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar12 + 4)" * (cast_expression "(undefined4 *)(iVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar12 + 0xc);" (assignment_expression "uVar3 = *(undefined4 *)(iVar12 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0xc)" * (cast_expression "(undefined4 *)(iVar12 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0xa0) = uVar7;" (assignment_expression "*(undefined4 *)(iVar8 + 0xa0) = uVar7" (pointer_expression "*(undefined4 *)(iVar8 + 0xa0)" * (cast_expression "(undefined4 *)(iVar8 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xa0)" ( (binary_expression "iVar8 + 0xa0" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = *(undefined4 *)(iVar12 + 0x10);" (assignment_expression "uVar7 = *(undefined4 *)(iVar12 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x10)" * (cast_expression "(undefined4 *)(iVar12 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0xa4) = uVar3;" (assignment_expression "*(undefined4 *)(iVar8 + 0xa4) = uVar3" (pointer_expression "*(undefined4 *)(iVar8 + 0xa4)" * (cast_expression "(undefined4 *)(iVar8 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xa4)" ( (binary_expression "iVar8 + 0xa4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 0xa8) = uVar7;" (assignment_expression "*(undefined4 *)(iVar8 + 0xa8) = uVar7" (pointer_expression "*(undefined4 *)(iVar8 + 0xa8)" * (cast_expression "(undefined4 *)(iVar8 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xa8)" ( (binary_expression "iVar8 + 0xa8" identifier + number_literal) )))) = identifier) ;) (expression_statement "ppiVar16 = ppiVar15 + -1;" (assignment_expression "ppiVar16 = ppiVar15 + -1" identifier = (binary_expression "ppiVar15 + -1" identifier + number_literal)) ;) })) }))) }) (else_clause "else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" else (compound_statement "{\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" { (expression_statement "uVar1 = *(uint *)(*param_5 + 8);" (assignment_expression "uVar1 = *(uint *)(*param_5 + 8)" identifier = (pointer_expression "*(uint *)(*param_5 + 8)" * (cast_expression "(uint *)(*param_5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_5 + 8)" ( (binary_expression "*param_5 + 8" (pointer_expression "*param_5" * identifier) + number_literal) ))))) ;) (expression_statement "uVar4 = (uVar1 & 0xff0000) >> 8;" (assignment_expression "uVar4 = (uVar1 & 0xff0000) >> 8" identifier = (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" ( (binary_expression "uVar1 & 0xff0000" identifier & number_literal) )) >> number_literal)) ;) (if_statement "if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;" if (parenthesized_expression "((uVar4 & 0x200) == 0)" ( (binary_expression "(uVar4 & 0x200) == 0" (parenthesized_expression "(uVar4 & 0x200)" ( (binary_expression "uVar4 & 0x200" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000aeca9;" goto statement_identifier ;)) (expression_statement "apiStack_60[0] = (int *)0x0;" (assignment_expression "apiStack_60[0] = (int *)0x0" (subscript_expression "apiStack_60[0]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "apiStack_60[2] = &DAT_0038f378;" (assignment_expression "apiStack_60[2] = &DAT_0038f378" (subscript_expression "apiStack_60[2]" identifier [ number_literal ]) = (pointer_expression "&DAT_0038f378" & identifier)) ;) (expression_statement "uVar7 = FUN_00174930(param_1 + 8,param_4,1);" (assignment_expression "uVar7 = FUN_00174930(param_1 + 8,param_4,1)" identifier = (call_expression "FUN_00174930(param_1 + 8,param_4,1)" identifier (argument_list "(param_1 + 8,param_4,1)" ( (binary_expression "param_1 + 8" identifier + number_literal) , identifier , number_literal )))) ;) (expression_statement "iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);" (assignment_expression "iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0)" identifier = (call_expression "FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0)" identifier (argument_list "(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0)" ( identifier , identifier , identifier , (binary_expression "uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | uVar4 & 0xfffff7ff" (binary_expression "uVar1 >> 0x18" identifier >> number_literal) | (binary_expression "uVar4 & 0xfffff7ff" identifier & number_literal)) | (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" ( (binary_expression "uVar1 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar1 << 0x18" identifier << number_literal)) , number_literal , number_literal , number_literal )))) ;) (expression_statement "ppiVar16 = apiStack_60 + 1;" (assignment_expression "ppiVar16 = apiStack_60 + 1" identifier = (binary_expression "apiStack_60 + 1" identifier + number_literal)) ;) (expression_statement "apiStack_60[1] = apiStack_60[2];" (assignment_expression "apiStack_60[1] = apiStack_60[2]" (subscript_expression "apiStack_60[1]" identifier [ number_literal ]) = (subscript_expression "apiStack_60[2]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_000aedb0:\n  piVar13 = (int *)ppiVar16[0x18][1];" statement_identifier : (expression_statement "piVar13 = (int *)ppiVar16[0x18][1];" (assignment_expression "piVar13 = (int *)ppiVar16[0x18][1]" identifier = (cast_expression "(int *)ppiVar16[0x18][1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x18][1]" (subscript_expression "ppiVar16[0x18]" identifier [ number_literal ]) [ number_literal ]))) ;)) (expression_statement "piVar14 = *(int **)(*apiStack_60[1] + 8);" (assignment_expression "piVar14 = *(int **)(*apiStack_60[1] + 8)" identifier = (pointer_expression "*(int **)(*apiStack_60[1] + 8)" * (cast_expression "(int **)(*apiStack_60[1] + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*apiStack_60[1] + 8)" ( (binary_expression "*apiStack_60[1] + 8" (pointer_expression "*apiStack_60[1]" * (subscript_expression "apiStack_60[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (expression_statement "ppiVar16[1] = piVar13;" (assignment_expression "ppiVar16[1] = piVar13" (subscript_expression "ppiVar16[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar11 = *(byte *)(piVar13 + 0x2b);" (assignment_expression "bVar11 = *(byte *)(piVar13 + 0x2b)" identifier = (pointer_expression "*(byte *)(piVar13 + 0x2b)" * (cast_expression "(byte *)(piVar13 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar13 + 0x2b)" ( (binary_expression "piVar13 + 0x2b" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = (uint)bVar11;" (assignment_expression "uVar9 = (uint)bVar11" identifier = (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar11 != 0) {\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }" { (if_statement "if (piVar14 == (int *)0x0) goto LAB_000af218;" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000af218;" goto statement_identifier ;)) (goto_statement "goto LAB_000aeee2;" goto statement_identifier ;) })) (if_statement "if (piVar14 == (int *)0x0) {\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }" { (labeled_statement "LAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;" statement_identifier : (expression_statement "ppiVar16[0xffffffff] = (int *)uVar9;" (assignment_expression "ppiVar16[0xffffffff] = (int *)uVar9" (subscript_expression "ppiVar16[0xffffffff]" identifier [ number_literal ]) = (cast_expression "(int *)uVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "ppiVar16[0xfffffffe] = (int *)"options";" (assignment_expression "ppiVar16[0xfffffffe] = (int *)"options"" (subscript_expression "ppiVar16[0xfffffffe]" identifier [ number_literal ]) = (cast_expression "(int *)"options"" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (string_literal ""options"" " string_content "))) ;) (expression_statement "ppiVar16[0xfffffffd] = (int *)0x5c;" (assignment_expression "ppiVar16[0xfffffffd] = (int *)0x5c" (subscript_expression "ppiVar16[0xfffffffd]" identifier [ number_literal ]) = (cast_expression "(int *)0x5c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";" (assignment_expression "ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h"" (subscript_expression "ppiVar16[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)"../../gold/parameters.h"" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (string_literal ""../../gold/parameters.h"" " string_content "))) ;) (expression_statement "ppiVar16[0xfffffffb] = (int *)0xaf22e;" (assignment_expression "ppiVar16[0xfffffffb] = (int *)0xaf22e" (subscript_expression "ppiVar16[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)0xaf22e" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';" (assignment_expression "bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0'" identifier = (binary_expression "*(char *)((int)piVar14 + 0x318d) == '\0'" (pointer_expression "*(char *)((int)piVar14 + 0x318d)" * (cast_expression "(char *)((int)piVar14 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0x318d)" ( (binary_expression "(int)piVar14 + 0x318d" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar25) goto LAB_000af100;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_000af100;" goto statement_identifier ;)) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".ctors.";" (assignment_expression "pbVar18 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  } while (bVar25);" do (compound_statement "{\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar25 = *pbVar18 == *pbVar20;" (assignment_expression "bVar25 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar25) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar25) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar25) == bVar22" (parenthesized_expression "(!bVar22 && !bVar25)" ( (binary_expression "!bVar22 && !bVar25" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) {\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }" { (labeled_statement "LAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;" statement_identifier : (expression_statement "*(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;" (assignment_expression "*(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8" (pointer_expression "*(byte *)(iVar8 + 0x91)" * (cast_expression "(byte *)(iVar8 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x91)" ( (binary_expression "iVar8 + 0x91" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar8 + 0x91) | 8" (pointer_expression "*(byte *)(iVar8 + 0x91)" * (cast_expression "(byte *)(iVar8 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x91)" ( (binary_expression "iVar8 + 0x91" identifier + number_literal) )))) | number_literal)) ;)) (expression_statement "bVar11 = *(byte *)(ppiVar16[1] + 0x2b);" (assignment_expression "bVar11 = *(byte *)(ppiVar16[1] + 0x2b)" identifier = (pointer_expression "*(byte *)(ppiVar16[1] + 0x2b)" * (cast_expression "(byte *)(ppiVar16[1] + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar16[1] + 0x2b)" ( (binary_expression "ppiVar16[1] + 0x2b" (subscript_expression "ppiVar16[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar9 = (uint)bVar11;" (assignment_expression "uVar9 = (uint)bVar11" identifier = (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }" if (parenthesized_expression "(*(char *)((int)piVar14 + 0x3ced) == '\0')" ( (binary_expression "*(char *)((int)piVar14 + 0x3ced) == '\0'" (pointer_expression "*(char *)((int)piVar14 + 0x3ced)" * (cast_expression "(char *)((int)piVar14 + 0x3ced)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0x3ced)" ( (binary_expression "(int)piVar14 + 0x3ced" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }" { (labeled_statement "LAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;" statement_identifier : (if_statement "if (bVar11 != 0) goto LAB_000aeee2;" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000aeee2;" goto statement_identifier ;))) (goto_statement "goto LAB_000af10d;" goto statement_identifier ;) })) (if_statement "if (bVar11 != 0) goto LAB_000aeee2;" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000aeee2;" goto statement_identifier ;)) (labeled_statement "LAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);" statement_identifier : (expression_statement "cVar6 = *(char *)((int)piVar14 + 0x318d);" (assignment_expression "cVar6 = *(char *)((int)piVar14 + 0x318d)" identifier = (pointer_expression "*(char *)((int)piVar14 + 0x318d)" * (cast_expression "(char *)((int)piVar14 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0x318d)" ( (binary_expression "(int)piVar14 + 0x318d" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (if_statement "if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;" if (parenthesized_expression "(*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0')" ( (binary_expression "*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0'" (pointer_expression "*(char *)((int)ppiVar16[0x18] + 0x1cd)" * (cast_expression "(char *)((int)ppiVar16[0x18] + 0x1cd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16[0x18] + 0x1cd)" ( (binary_expression "(int)ppiVar16[0x18] + 0x1cd" (cast_expression "(int)ppiVar16[0x18]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar16[0x18]" identifier [ number_literal ])) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000af114;" goto statement_identifier ;)) (if_statement "if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }" { (expression_statement "ppiVar16[3] = piVar14;" (assignment_expression "ppiVar16[3] = piVar14" (subscript_expression "ppiVar16[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppuVar19 = &PTR_s__text_unlikely_003837a0;" (assignment_expression "ppuVar19 = &PTR_s__text_unlikely_003837a0" identifier = (pointer_expression "&PTR_s__text_unlikely_003837a0" & identifier)) ;) (expression_statement "ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;" (assignment_expression "ppiVar16[2] = (int *)&PTR_s_aranges_003837b0" (subscript_expression "ppiVar16[2]" identifier [ number_literal ]) = (cast_expression "(int *)&PTR_s_aranges_003837b0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&PTR_s_aranges_003837b0" & identifier))) ;) (expression_statement "pcVar21 = ".text.unlikely";" (assignment_expression "pcVar21 = ".text.unlikely"" identifier = (string_literal "".text.unlikely"" " string_content ")) ;) (expression_statement "sVar10 = 0xe;" (assignment_expression "sVar10 = 0xe" identifier = number_literal) ;) (while_statement "while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }" { (expression_statement "ppiVar16[0xfffffffe] = (int *)sVar10;" (assignment_expression "ppiVar16[0xfffffffe] = (int *)sVar10" (subscript_expression "ppiVar16[0xfffffffe]" identifier [ number_literal ]) = (cast_expression "(int *)sVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar16[0xfffffffd] = ppiVar16[0x1b];" (assignment_expression "ppiVar16[0xfffffffd] = ppiVar16[0x1b]" (subscript_expression "ppiVar16[0xfffffffd]" identifier [ number_literal ]) = (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ])) ;) (expression_statement "ppiVar16[0xfffffffc] = (int *)pcVar21;" (assignment_expression "ppiVar16[0xfffffffc] = (int *)pcVar21" (subscript_expression "ppiVar16[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)pcVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar16[0xfffffffb] = (int *)0xaf28d;" (assignment_expression "ppiVar16[0xfffffffb] = (int *)0xaf28d" (subscript_expression "ppiVar16[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)0xaf28d" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);" (assignment_expression "iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe])" identifier = (call_expression "strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe])" identifier (argument_list "((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe])" ( (cast_expression "(char *)ppiVar16[0xfffffffc]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0xfffffffc]" identifier [ number_literal ])) , (cast_expression "(char *)ppiVar16[0xfffffffd]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0xfffffffd]" identifier [ number_literal ])) , (cast_expression "(size_t)ppiVar16[0xfffffffe]" ( (type_descriptor "size_t" primitive_type) ) (subscript_expression "ppiVar16[0xfffffffe]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "ppuVar19 = ppuVar19 + 1;" (assignment_expression "ppuVar19 = ppuVar19 + 1" identifier = (binary_expression "ppuVar19 + 1" identifier + number_literal)) ;) (if_statement "if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;" if (parenthesized_expression "((undefined **)ppiVar16[2] == ppuVar19)" ( (binary_expression "(undefined **)ppiVar16[2] == ppuVar19" (cast_expression "(undefined **)ppiVar16[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppiVar16[2]" identifier [ number_literal ])) == identifier) )) (goto_statement "goto LAB_000af11c;" goto statement_identifier ;)) (expression_statement "pcVar21 = *ppuVar19;" (assignment_expression "pcVar21 = *ppuVar19" identifier = (pointer_expression "*ppuVar19" * identifier)) ;) (expression_statement "ppiVar16[0xfffffffc] = (int *)pcVar21;" (assignment_expression "ppiVar16[0xfffffffc] = (int *)pcVar21" (subscript_expression "ppiVar16[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)pcVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar16[0xfffffffb] = (int *)0xaf2ac;" (assignment_expression "ppiVar16[0xfffffffb] = (int *)0xaf2ac" (subscript_expression "ppiVar16[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)0xaf2ac" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar10 = strlen((char *)ppiVar16[0xfffffffc]);" (assignment_expression "sVar10 = strlen((char *)ppiVar16[0xfffffffc])" identifier = (call_expression "strlen((char *)ppiVar16[0xfffffffc])" identifier (argument_list "((char *)ppiVar16[0xfffffffc])" ( (cast_expression "(char *)ppiVar16[0xfffffffc]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0xfffffffc]" identifier [ number_literal ])) )))) ;) })) (expression_statement "piVar14 = ppiVar16[3];" (assignment_expression "piVar14 = ppiVar16[3]" identifier = (subscript_expression "ppiVar16[3]" identifier [ number_literal ])) ;) (expression_statement "*(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;" (assignment_expression "*(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8" (pointer_expression "*(byte *)(iVar8 + 0x91)" * (cast_expression "(byte *)(iVar8 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x91)" ( (binary_expression "iVar8 + 0x91" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar8 + 0x91) | 8" (pointer_expression "*(byte *)(iVar8 + 0x91)" * (cast_expression "(byte *)(iVar8 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x91)" ( (binary_expression "iVar8 + 0x91" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "bVar11 = *(byte *)(ppiVar16[1] + 0x2b);" (assignment_expression "bVar11 = *(byte *)(ppiVar16[1] + 0x2b)" identifier = (pointer_expression "*(byte *)(ppiVar16[1] + 0x2b)" * (cast_expression "(byte *)(ppiVar16[1] + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar16[1] + 0x2b)" ( (binary_expression "ppiVar16[1] + 0x2b" (subscript_expression "ppiVar16[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar9 = (uint)bVar11;" (assignment_expression "uVar9 = (uint)bVar11" identifier = (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_000af249;" goto statement_identifier ;) })) }) (else_clause "else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }" else (compound_statement "{\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }" { (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".dtors.";" (assignment_expression "pbVar18 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);" do (compound_statement "{\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) goto LAB_000aee98;" if (parenthesized_expression "(bVar22)" ( identifier )) (goto_statement "goto LAB_000aee98;" goto statement_identifier ;)) (expression_statement "iVar12 = 0xc;" (assignment_expression "iVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".init_array.";" (assignment_expression "pbVar18 = (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 "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);" do (compound_statement "{\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar18 < *pbVar20;" (assignment_expression "bVar25 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar25 && !bVar22) == bVar25;" (assignment_expression "bVar22 = (!bVar25 && !bVar22) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar22) == bVar25" (parenthesized_expression "(!bVar25 && !bVar22)" ( (binary_expression "!bVar25 && !bVar22" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) goto LAB_000aee98;" if (parenthesized_expression "(bVar22)" ( identifier )) (goto_statement "goto LAB_000aee98;" goto statement_identifier ;)) (expression_statement "iVar12 = 0xc;" (assignment_expression "iVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".fini_array.";" (assignment_expression "pbVar18 = (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 "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);" do (compound_statement "{\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;" if (parenthesized_expression "((!bVar23 && !bVar22) == bVar23)" ( (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_000aee98;" goto statement_identifier ;)) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';" (assignment_expression "bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0'" identifier = (binary_expression "*(char *)((int)piVar14 + 0xad5) == '\0'" (pointer_expression "*(char *)((int)piVar14 + 0xad5)" * (cast_expression "(char *)((int)piVar14 + 0xad5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0xad5)" ( (binary_expression "(int)piVar14 + 0xad5" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }" { (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (expression_statement "pbVar20 = (byte *)".ctors";" (assignment_expression "pbVar20 = (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 (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);" do (compound_statement "{\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar25 = *pbVar18 == *pbVar20;" (assignment_expression "bVar25 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar25) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar25) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar25) == bVar22" (parenthesized_expression "(!bVar22 && !bVar25)" ( (binary_expression "!bVar22 && !bVar25" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }" { (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (expression_statement "pbVar20 = (byte *)".dtors";" (assignment_expression "pbVar20 = (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 (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);" do (compound_statement "{\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;" if (parenthesized_expression "((!bVar23 && !bVar22) != bVar23)" ( (binary_expression "(!bVar23 && !bVar22) != bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000af100;" goto statement_identifier ;)) })) (goto_statement "goto LAB_000aee98;" goto statement_identifier ;) })) (labeled_statement "LAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;" statement_identifier : (if_statement "if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;" if (parenthesized_expression "(*(char *)((int)piVar14 + 0x3ced) != '\0')" ( (binary_expression "*(char *)((int)piVar14 + 0x3ced) != '\0'" (pointer_expression "*(char *)((int)piVar14 + 0x3ced)" * (cast_expression "(char *)((int)piVar14 + 0x3ced)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0x3ced)" ( (binary_expression "(int)piVar14 + 0x3ced" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000aeebd;" goto statement_identifier ;))) (labeled_statement "LAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);" statement_identifier : (expression_statement "cVar6 = *(char *)((int)piVar14 + 0x318d);" (assignment_expression "cVar6 = *(char *)((int)piVar14 + 0x318d)" identifier = (pointer_expression "*(char *)((int)piVar14 + 0x318d)" * (cast_expression "(char *)((int)piVar14 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0x318d)" ( (binary_expression "(int)piVar14 + 0x318d" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (labeled_statement "LAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }" statement_identifier : (if_statement "if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }" { (labeled_statement "LAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);" statement_identifier : (expression_statement "uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);" (assignment_expression "uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14)" identifier = (pointer_expression "*(uint *)(*ppiVar16[0x1c] + 0x14)" * (cast_expression "(uint *)(*ppiVar16[0x1c] + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppiVar16[0x1c] + 0x14)" ( (binary_expression "*ppiVar16[0x1c] + 0x14" (pointer_expression "*ppiVar16[0x1c]" * (subscript_expression "ppiVar16[0x1c]" identifier [ number_literal ])) + number_literal) ))))) ;)) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" identifier = (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x18" identifier << number_literal))) ;) (expression_statement "bVar22 = uVar9 < 4;" (assignment_expression "bVar22 = uVar9 < 4" identifier = (binary_expression "uVar9 < 4" identifier < number_literal)) ;) (expression_statement "bVar25 = uVar9 == 4;" (assignment_expression "bVar25 = uVar9 == 4" identifier = (binary_expression "uVar9 == 4" identifier == number_literal)) ;) (if_statement "if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }" if (parenthesized_expression "(4 < uVar9)" ( (binary_expression "4 < uVar9" number_literal < identifier) )) (compound_statement "{\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }" { (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (expression_statement "pbVar20 = (byte *)".ctors";" (assignment_expression "pbVar20 = (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 (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);" do (compound_statement "{\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar25 = *pbVar18 == *pbVar20;" (assignment_expression "bVar25 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar22 && !bVar25) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar25) == bVar22" identifier = (binary_expression "(!bVar22 && !bVar25) == bVar22" (parenthesized_expression "(!bVar22 && !bVar25)" ( (binary_expression "!bVar22 && !bVar25" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }" { (labeled_statement "LAB_000af164:\n          bVar25 = false;" statement_identifier : (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;)) (expression_statement "iVar12 = 0xc;" (assignment_expression "iVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar18 = *(byte **)(iVar8 + 0x20);" (assignment_expression "pbVar18 = *(byte **)(iVar8 + 0x20)" identifier = (pointer_expression "*(byte **)(iVar8 + 0x20)" * (cast_expression "(byte **)(iVar8 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar20 = (byte *)".init_array";" (assignment_expression "pbVar20 = (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 (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar18 < *pbVar20;" (assignment_expression "bVar25 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar22 = (!bVar25 && !bVar22) == bVar25;" (assignment_expression "bVar22 = (!bVar25 && !bVar22) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar22) == bVar25" (parenthesized_expression "(!bVar25 && !bVar22)" ( (binary_expression "!bVar25 && !bVar22" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) goto LAB_000af1d0;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_000af1d0;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }" else (compound_statement "{\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }" { (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".ctors.";" (assignment_expression "pbVar18 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar22) goto LAB_000af164;" if (parenthesized_expression "(bVar22)" ( identifier )) (goto_statement "goto LAB_000af164;" goto statement_identifier ;)) (labeled_statement "LAB_000af1d0:\n          bVar25 = false;" statement_identifier : (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;)) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (expression_statement "pbVar20 = (byte *)".dtors";" (assignment_expression "pbVar20 = (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 (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar18 < *pbVar20;" (assignment_expression "bVar25 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar22 = (!bVar25 && !bVar22) == bVar25;" (assignment_expression "bVar22 = (!bVar25 && !bVar22) == bVar25" identifier = (binary_expression "(!bVar25 && !bVar22) == bVar25" (parenthesized_expression "(!bVar25 && !bVar22)" ( (binary_expression "!bVar25 && !bVar22" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (compound_statement "{\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }" { (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)".dtors.";" (assignment_expression "pbVar18 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" identifier = (cast_expression "(byte *)ppiVar16[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar16[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);" do (compound_statement "{\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" ( (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar22) goto LAB_000aeee0;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_000aeee0;" goto statement_identifier ;)) })) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "iVar12 = 0xc;" (assignment_expression "iVar12 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar18 = *(byte **)(iVar8 + 0x20);" (assignment_expression "pbVar18 = *(byte **)(iVar8 + 0x20)" identifier = (pointer_expression "*(byte **)(iVar8 + 0x20)" * (cast_expression "(byte **)(iVar8 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar20 = (byte *)".fini_array";" (assignment_expression "pbVar20 = (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 (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar18 < *pbVar20;" (assignment_expression "bVar25 = *pbVar18 < *pbVar20" identifier = (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" identifier = (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;" if (parenthesized_expression "((!bVar25 && !bVar22) != bVar25)" ( (binary_expression "(!bVar25 && !bVar22) != bVar25" (parenthesized_expression "(!bVar25 && !bVar22)" ( (binary_expression "!bVar25 && !bVar22" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000aeee0;" goto statement_identifier ;)) }))) (expression_statement "ppiVar16[10] = ppiVar16[0x19];" (assignment_expression "ppiVar16[10] = ppiVar16[0x19]" (subscript_expression "ppiVar16[10]" identifier [ number_literal ]) = (subscript_expression "ppiVar16[0x19]" identifier [ number_literal ])) ;) (expression_statement "ppiVar16[0xb] = ppiVar16[0x1a];" (assignment_expression "ppiVar16[0xb] = ppiVar16[0x1a]" (subscript_expression "ppiVar16[0xb]" identifier [ number_literal ]) = (subscript_expression "ppiVar16[0x1a]" identifier [ number_literal ])) ;) (expression_statement "ppiVar16[9] = &DAT_0038f4c4;" (assignment_expression "ppiVar16[9] = &DAT_0038f4c4" (subscript_expression "ppiVar16[9]" identifier [ number_literal ]) = (pointer_expression "&DAT_0038f4c4" & identifier)) ;) (expression_statement "ppiVar16[0xfffffffd] = (int *)0x1;" (assignment_expression "ppiVar16[0xfffffffd] = (int *)0x1" (subscript_expression "ppiVar16[0xfffffffd]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar16[0xfffffffc] = (int *)0x0;" (assignment_expression "ppiVar16[0xfffffffc] = (int *)0x0" (subscript_expression "ppiVar16[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);" (assignment_expression "ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9)" (subscript_expression "ppiVar16[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar16 + 9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar16 + 9)" ( (binary_expression "ppiVar16 + 9" identifier + number_literal) )))) ;) (expression_statement "ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);" (assignment_expression "ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10)" (subscript_expression "ppiVar16[0xfffffffa]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar16 + 10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar16 + 10)" ( (binary_expression "ppiVar16 + 10" identifier + number_literal) )))) ;) (expression_statement "ppiVar16[0xfffffff9] = &DAT_0038f4c4;" (assignment_expression "ppiVar16[0xfffffff9] = &DAT_0038f4c4" (subscript_expression "ppiVar16[0xfffffff9]" identifier [ number_literal ]) = (pointer_expression "&DAT_0038f4c4" & identifier)) ;) (expression_statement "ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);" (assignment_expression "ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4)" (subscript_expression "ppiVar16[0xfffffff8]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar16 + 4)" ( (binary_expression "ppiVar16 + 4" identifier + number_literal) )))) ;) (expression_statement "ppiVar16[0xfffffff7] = (int *)0xaf1b3;" (assignment_expression "ppiVar16[0xfffffff7] = (int *)0xaf1b3" (subscript_expression "ppiVar16[0xfffffff7]" identifier [ number_literal ]) = (cast_expression "(int *)0xaf1b3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_000ae400();" (call_expression "FUN_000ae400()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppiVar15 = ppiVar16 + 0x17;" (assignment_expression "ppiVar15 = ppiVar16 + 0x17" identifier = (binary_expression "ppiVar16 + 0x17" identifier + number_literal)) ;) (expression_statement "ppiVar16 = ppiVar16 + 0xffffffff;" (assignment_expression "ppiVar16 = ppiVar16 + 0xffffffff" identifier = (binary_expression "ppiVar16 + 0xffffffff" identifier + number_literal)) ;) (expression_statement "uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);" (assignment_expression "uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac)" identifier = (binary_expression "(uint)*(byte *)((*ppiVar15)[1] + 0xac)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((*ppiVar15)[1] + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*ppiVar15)[1] + 0xac)" ( (binary_expression "(*ppiVar15)[1] + 0xac" (subscript_expression "(*ppiVar15)[1]" (parenthesized_expression "(*ppiVar15)" ( (pointer_expression "*ppiVar15" * identifier) )) [ number_literal ]) + number_literal) ))))) ;) (goto_statement "goto LAB_000aeee2;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_000aeee0:\n  uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_000aeee2:\n  uVar1 = *(uint *)(iVar8 + 0x54);" statement_identifier : (expression_statement "uVar1 = *(uint *)(iVar8 + 0x54);" (assignment_expression "uVar1 = *(uint *)(iVar8 + 0x54)" identifier = (pointer_expression "*(uint *)(iVar8 + 0x54)" * (cast_expression "(uint *)(iVar8 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x54)" ( (binary_expression "iVar8 + 0x54" identifier + number_literal) ))))) ;)) (expression_statement "*(uint *)((int)ppiVar16 + -4) = uVar9;" (assignment_expression "*(uint *)((int)ppiVar16 + -4) = uVar9" (pointer_expression "*(uint *)((int)ppiVar16 + -4)" * (cast_expression "(uint *)((int)ppiVar16 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -4)" ( (binary_expression "(int)ppiVar16 + -4" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -8)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -8)" ( (binary_expression "(int)ppiVar16 + -8" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x78)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x78)" ( (binary_expression "(int)ppiVar16 + 0x78" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0xc)" ( (binary_expression "(int)ppiVar16 + -0xc" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x70)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x70)" ( (binary_expression "(int)ppiVar16 + 0x70" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x10)" ( (binary_expression "(int)ppiVar16 + -0x10" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x6c)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x6c)" ( (binary_expression "(int)ppiVar16 + 0x6c" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x14)" ( (binary_expression "(int)ppiVar16 + -0x14" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x68)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x68)" ( (binary_expression "(int)ppiVar16 + 0x68" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x18)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x18)" ( (binary_expression "(int)ppiVar16 + -0x18" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 100)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 100)" ( (binary_expression "(int)ppiVar16 + 100" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x1c)" ( (binary_expression "(int)ppiVar16 + -0x1c" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x60)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x60)" ( (binary_expression "(int)ppiVar16 + 0x60" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)ppiVar16 + -0x20) = iVar8;" (assignment_expression "*(int *)((int)ppiVar16 + -0x20) = iVar8" (pointer_expression "*(int *)((int)ppiVar16 + -0x20)" * (cast_expression "(int *)((int)ppiVar16 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x20)" ( (binary_expression "(int)ppiVar16 + -0x20" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x24)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x24)" ( (binary_expression "(int)ppiVar16 + -0x24" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar28 = FUN_00126020();" (assignment_expression "uVar28 = FUN_00126020()" identifier = (call_expression "FUN_00126020()" identifier (argument_list "()" ( )))) ;) (expression_statement "**(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;" (assignment_expression "**(undefined8 **)((int)ppiVar16 + 0x80) = uVar28" (pointer_expression "**(undefined8 **)((int)ppiVar16 + 0x80)" * (pointer_expression "*(undefined8 **)((int)ppiVar16 + 0x80)" * (cast_expression "(undefined8 **)((int)ppiVar16 + 0x80)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar16 + 0x80)" ( (binary_expression "(int)ppiVar16 + 0x80" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) = identifier) ;) (if_statement "if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }" if (parenthesized_expression "(((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0))" ( (binary_expression "((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)" (parenthesized_expression "((uVar1 & 2) != 0)" ( (binary_expression "(uVar1 & 2) != 0" (parenthesized_expression "(uVar1 & 2)" ( (binary_expression "uVar1 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)" ( (binary_expression "((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0" (parenthesized_expression "((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5)" ( (binary_expression "(uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5" (parenthesized_expression "(uVar1 ^ *(uint *)(iVar8 + 0x54))" ( (binary_expression "uVar1 ^ *(uint *)(iVar8 + 0x54)" identifier ^ (pointer_expression "*(uint *)(iVar8 + 0x54)" * (cast_expression "(uint *)(iVar8 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x54)" ( (binary_expression "iVar8 + 0x54" identifier + number_literal) ))))) )) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }" { (expression_statement "*(undefined4 *)((int)ppiVar16 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -8) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -8)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -8)" ( (binary_expression "(int)ppiVar16 + -8" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppiVar16 + -0xc) = iVar8;" (assignment_expression "*(int *)((int)ppiVar16 + -0xc) = iVar8" (pointer_expression "*(int *)((int)ppiVar16 + -0xc)" * (cast_expression "(int *)((int)ppiVar16 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0xc)" ( (binary_expression "(int)ppiVar16 + -0xc" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x10)" ( (binary_expression "(int)ppiVar16 + -0x10" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x60)" * (cast_expression "(undefined4 *)((int)ppiVar16 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x60)" ( (binary_expression "(int)ppiVar16 + 0x60" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + -0x14)" ( (binary_expression "(int)ppiVar16 + -0x14" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar7 = FUN_00097200();" (assignment_expression "uVar7 = FUN_00097200()" identifier = (call_expression "FUN_00097200()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x5c) = uVar7;" (assignment_expression "*(undefined4 *)(iVar8 + 0x5c) = uVar7" (pointer_expression "*(undefined4 *)(iVar8 + 0x5c)" * (cast_expression "(undefined4 *)(iVar8 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x5c)" ( (binary_expression "iVar8 + 0x5c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1" (pointer_expression "*(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4)" * (cast_expression "(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)ppiVar16 + 0x60) + 0x1c4)" ( (binary_expression "*(int *)((int)ppiVar16 + 0x60) + 0x1c4" (pointer_expression "*(int *)((int)ppiVar16 + 0x60)" * (cast_expression "(int *)((int)ppiVar16 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar16 + 0x60)" ( (binary_expression "(int)ppiVar16 + 0x60" (cast_expression "(int)ppiVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) = number_literal) ;) (return_statement "return iVar8;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (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 IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 = (pointer_expression & IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) )) ;) (expression_statement (assignment_expression IDENT = 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 (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) + 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) + 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) , (subscript_expression IDENT [ LIT ]) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression (binary_expression IDENT | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT | IDENT) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (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 * (pointer_expression * IDENT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (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 IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT | IDENT) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 IDENT = (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) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT & LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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 (cast_expression ( (type_descriptor TYPE) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (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) )) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ 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)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = 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 *)) ) (subscript_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 ;)) })) (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 (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) 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 * (subscript_expression IDENT [ LIT ])) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (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 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ LIT ]) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) = 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 (parenthesized_expression ( (binary_expression IDENT ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) )))) = LIT) ;) (return_statement return IDENT ;) })))
(function_definition "int FUN_000aec30(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,\n                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char cVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  size_t sVar10;\n  byte bVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  int **ppiVar15;\n  int **ppiVar16;\n  int **ppiVar17;\n  byte *pbVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  char *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  int unaff_retaddr;\n  int *apiStackY_8c [3];\n  int *apiStack_60 [8];\n  int *local_40 [3];\n  undefined1 local_34 [4];\n  byte local_30 [28];\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0xaec39;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar6 = FUN_000a77e0(param_1,param_2,param_4);\n  ppiVar16 = apiStack_60 + 1;\n  ppiVar15 = apiStack_60 + 1;\n  if (cVar6 == '\0') {\n    return 0;\n  }\n  uVar9 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar9 == 0) goto LAB_000af218;\n  if (*(char *)(uVar9 + 0x318d) == '\0') {\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }\n  else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000aedb0:\n  piVar13 = (int *)ppiVar16[0x18][1];\n  piVar14 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar16[1] = piVar13;\n  bVar11 = *(byte *)(piVar13 + 0x2b);\n  uVar9 = (uint)bVar11;\n  if (bVar11 != 0) {\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }\n  if (piVar14 == (int *)0x0) {\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }\n  bVar22 = false;\n  bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';\n  if (!bVar25) goto LAB_000af100;\n  iVar12 = 7;\n  pbVar18 = (byte *)".ctors.";\n  pbVar20 = (byte *)ppiVar16[0x1b];\n  do {\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  } while (bVar25);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar25) == bVar22;\n  if (bVar22) {\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }\nLAB_000aeee0:\n  uVar9 = 0;\nLAB_000aeee2:\n  uVar1 = *(uint *)(iVar8 + 0x54);\n  *(uint *)((int)ppiVar16 + -4) = uVar9;\n  *(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);\n  *(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);\n  *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);\n  *(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);\n  *(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);\n  *(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);\n  *(int *)((int)ppiVar16 + -0x20) = iVar8;\n  *(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;\n  uVar28 = FUN_00126020();\n  **(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;\n  return iVar8;\n}" (primitive_type "int") (function_declarator "FUN_000aec30(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,\n                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)" (identifier "FUN_000aec30") (parameter_list "(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,\n                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (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 "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) (, ",") (parameter_declaration "undefined4 *param_9" (type_identifier "undefined4") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char cVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  size_t sVar10;\n  byte bVar11;\n  int iVar12;\n  int *piVar13;\n  int *piVar14;\n  int **ppiVar15;\n  int **ppiVar16;\n  int **ppiVar17;\n  byte *pbVar18;\n  undefined **ppuVar19;\n  byte *pbVar20;\n  char *pcVar21;\n  bool bVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  byte bVar27;\n  undefined8 uVar28;\n  int unaff_retaddr;\n  int *apiStackY_8c [3];\n  int *apiStack_60 [8];\n  int *local_40 [3];\n  undefined1 local_34 [4];\n  byte local_30 [28];\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0xaec39;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar6 = FUN_000a77e0(param_1,param_2,param_4);\n  ppiVar16 = apiStack_60 + 1;\n  ppiVar15 = apiStack_60 + 1;\n  if (cVar6 == '\0') {\n    return 0;\n  }\n  uVar9 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar9 == 0) goto LAB_000af218;\n  if (*(char *)(uVar9 + 0x318d) == '\0') {\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }\n  else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000aedb0:\n  piVar13 = (int *)ppiVar16[0x18][1];\n  piVar14 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar16[1] = piVar13;\n  bVar11 = *(byte *)(piVar13 + 0x2b);\n  uVar9 = (uint)bVar11;\n  if (bVar11 != 0) {\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }\n  if (piVar14 == (int *)0x0) {\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }\n  bVar22 = false;\n  bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';\n  if (!bVar25) goto LAB_000af100;\n  iVar12 = 7;\n  pbVar18 = (byte *)".ctors.";\n  pbVar20 = (byte *)ppiVar16[0x1b];\n  do {\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  } while (bVar25);\n  bVar23 = false;\n  bVar22 = (!bVar22 && !bVar25) == bVar22;\n  if (bVar22) {\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }\nLAB_000aeee0:\n  uVar9 = 0;\nLAB_000aeee2:\n  uVar1 = *(uint *)(iVar8 + 0x54);\n  *(uint *)((int)ppiVar16 + -4) = uVar9;\n  *(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);\n  *(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);\n  *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);\n  *(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);\n  *(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);\n  *(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);\n  *(int *)((int)ppiVar16 + -0x20) = iVar8;\n  *(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;\n  uVar28 = FUN_00126020();\n  **(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;\n  return iVar8;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "size_t sVar10;" (primitive_type "size_t") (identifier "sVar10") (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "int **ppiVar15;" (primitive_type "int") (pointer_declarator "**ppiVar15" (* "*") (pointer_declarator "*ppiVar15" (* "*") (identifier "ppiVar15"))) (; ";")) (declaration "int **ppiVar16;" (primitive_type "int") (pointer_declarator "**ppiVar16" (* "*") (pointer_declarator "*ppiVar16" (* "*") (identifier "ppiVar16"))) (; ";")) (declaration "int **ppiVar17;" (primitive_type "int") (pointer_declarator "**ppiVar17" (* "*") (pointer_declarator "*ppiVar17" (* "*") (identifier "ppiVar17"))) (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "undefined **ppuVar19;" (type_identifier "undefined") (pointer_declarator "**ppuVar19" (* "*") (pointer_declarator "*ppuVar19" (* "*") (identifier "ppuVar19"))) (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "char *pcVar21;" (primitive_type "char") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "undefined1 uVar24;" (type_identifier "undefined1") (identifier "uVar24") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "undefined1 uVar26;" (type_identifier "undefined1") (identifier "uVar26") (; ";")) (declaration "byte bVar27;" (type_identifier "byte") (identifier "bVar27") (; ";")) (declaration "undefined8 uVar28;" (type_identifier "undefined8") (identifier "uVar28") (; ";")) (declaration "int unaff_retaddr;" (primitive_type "int") (identifier "unaff_retaddr") (; ";")) (declaration "int *apiStackY_8c [3];" (primitive_type "int") (pointer_declarator "*apiStackY_8c [3]" (* "*") (array_declarator "apiStackY_8c [3]" (identifier "apiStackY_8c") ([ "[") (number_literal "3") (] "]"))) (; ";")) (declaration "int *apiStack_60 [8];" (primitive_type "int") (pointer_declarator "*apiStack_60 [8]" (* "*") (array_declarator "apiStack_60 [8]" (identifier "apiStack_60") ([ "[") (number_literal "8") (] "]"))) (; ";")) (declaration "int *local_40 [3];" (primitive_type "int") (pointer_declarator "*local_40 [3]" (* "*") (array_declarator "local_40 [3]" (identifier "local_40") ([ "[") (number_literal "3") (] "]"))) (; ";")) (declaration "undefined1 local_34 [4];" (type_identifier "undefined1") (array_declarator "local_34 [4]" (identifier "local_34") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "byte local_30 [28];" (type_identifier "byte") (array_declarator "local_30 [28]" (identifier "local_30") ([ "[") (number_literal "28") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" (identifier "bVar27") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0xaec39;" (assignment_expression "uStack_14 = 0xaec39" (identifier "uStack_14") (= "=") (number_literal "0xaec39")) (; ";")) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_9[1] = 0;" (assignment_expression "param_9[1] = 0" (subscript_expression "param_9[1]" (identifier "param_9") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "apiStack_60[0] = param_5;" (assignment_expression "apiStack_60[0] = param_5" (subscript_expression "apiStack_60[0]" (identifier "apiStack_60") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "cVar6 = FUN_000a77e0(param_1,param_2,param_4);" (assignment_expression "cVar6 = FUN_000a77e0(param_1,param_2,param_4)" (identifier "cVar6") (= "=") (call_expression "FUN_000a77e0(param_1,param_2,param_4)" (identifier "FUN_000a77e0") (argument_list "(param_1,param_2,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "ppiVar16 = apiStack_60 + 1;" (assignment_expression "ppiVar16 = apiStack_60 + 1" (identifier "ppiVar16") (= "=") (binary_expression "apiStack_60 + 1" (identifier "apiStack_60") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppiVar15 = apiStack_60 + 1;" (assignment_expression "ppiVar15 = apiStack_60 + 1" (identifier "ppiVar15") (= "=") (binary_expression "apiStack_60 + 1" (identifier "apiStack_60") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar6 == '\0') {\n    return 0;\n  }" (if "if") (parenthesized_expression "(cVar6 == '\0')" (( "(") (binary_expression "cVar6 == '\0'" (identifier "cVar6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar9 = *(uint *)(DAT_0038f378 + 8);" (assignment_expression "uVar9 = *(uint *)(DAT_0038f378 + 8)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(DAT_0038f378 + 8)" (* "*") (cast_expression "(uint *)(DAT_0038f378 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 8)" (( "(") (binary_expression "DAT_0038f378 + 8" (identifier "DAT_0038f378") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (uVar9 == 0) goto LAB_000af218;" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000af218;" (goto "goto") (statement_identifier "LAB_000af218") (; ";"))) (if_statement "if (*(char *)(uVar9 + 0x318d) == '\0') {\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }\n  else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" (if "if") (parenthesized_expression "(*(char *)(uVar9 + 0x318d) == '\0')" (( "(") (binary_expression "*(char *)(uVar9 + 0x318d) == '\0'" (pointer_expression "*(char *)(uVar9 + 0x318d)" (* "*") (cast_expression "(char *)(uVar9 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x318d)" (( "(") (binary_expression "uVar9 + 0x318d" (identifier "uVar9") (+ "+") (number_literal "0x318d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_000aeca9:\n    piVar13 = &DAT_0038f378;\n    if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }\n    ppiVar15[1] = piVar13;\n    ppiVar15[10] = ppiVar15[0x19];\n    ppiVar15[0xb] = ppiVar15[0x1a];\n    ppiVar15[-2] = (int *)local_34;\n    ppiVar15[-3] = ppiVar15[0x18] + 0x81;\n    ppiVar15[-4] = (int *)(ppiVar15 + 7);\n    ppiVar15[-5] = (int *)0xaece7;\n    FUN_000a9000();\n    piVar13 = ppiVar15[6];\n    ppiVar17 = ppiVar15 + -1;\n    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);\n    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n    uVar4 = (uVar9 & 0xff00) << 8;\n    if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_000aeca9:\n    piVar13 = &DAT_0038f378;" (statement_identifier "LAB_000aeca9") (: ":") (expression_statement "piVar13 = &DAT_0038f378;" (assignment_expression "piVar13 = &DAT_0038f378" (identifier "piVar13") (= "=") (pointer_expression "&DAT_0038f378" (& "&") (identifier "DAT_0038f378"))) (; ";"))) (if_statement "if (*(char *)(uVar9 + 0x5871) != '\0') {\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)(uVar9 + 0x5871) != '\0')" (( "(") (binary_expression "*(char *)(uVar9 + 0x5871) != '\0'" (pointer_expression "*(char *)(uVar9 + 0x5871)" (* "*") (cast_expression "(char *)(uVar9 + 0x5871)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 + 0x5871)" (( "(") (binary_expression "uVar9 + 0x5871" (identifier "uVar9") (+ "+") (number_literal "0x5871")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar24 = apiStack_60 + 1 < (int **)0x4;\n      uVar26 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar8 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar18 = (byte *)".text.unlikely";\n      pbVar20 = (byte *)local_40[2];\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);\n      ppiVar15 = apiStack_60;\n      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }\n      piVar13 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }\n    }" ({ "{") (expression_statement "uVar24 = apiStack_60 + 1 < (int **)0x4;" (assignment_expression "uVar24 = apiStack_60 + 1 < (int **)0x4" (identifier "uVar24") (= "=") (binary_expression "apiStack_60 + 1 < (int **)0x4" (binary_expression "apiStack_60 + 1" (identifier "apiStack_60") (+ "+") (number_literal "1")) (< "<") (cast_expression "(int **)0x4" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x4")))) (; ";")) (expression_statement "uVar26 = &stack0x00000000 == (undefined1 *)0x60;" (assignment_expression "uVar26 = &stack0x00000000 == (undefined1 *)0x60" (identifier "uVar26") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x60" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x60" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x60")))) (; ";")) (expression_statement "apiStack_60[2] = &DAT_0038f378;" (assignment_expression "apiStack_60[2] = &DAT_0038f378" (subscript_expression "apiStack_60[2]" (identifier "apiStack_60") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "&DAT_0038f378" (& "&") (identifier "DAT_0038f378"))) (; ";")) (expression_statement "(**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);" (call_expression "(**(code **)(*param_2 + 0x40))(local_34,param_2,param_3)" (parenthesized_expression "(**(code **)(*param_2 + 0x40))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x40)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x40)" (* "*") (cast_expression "(code **)(*param_2 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x40)" (( "(") (binary_expression "*param_2 + 0x40" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (argument_list "(local_34,param_2,param_3)" (( "(") (identifier "local_34") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "iVar8 = 0xe;" (assignment_expression "iVar8 = 0xe" (identifier "iVar8") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "apiStack_60[2] = (int *)0x28a53f;" (assignment_expression "apiStack_60[2] = (int *)0x28a53f" (subscript_expression "apiStack_60[2]" (identifier "apiStack_60") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int *)0x28a53f" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x28a53f"))) (; ";")) (expression_statement "pbVar18 = (byte *)".text.unlikely";" (assignment_expression "pbVar18 = (byte *)".text.unlikely"" (identifier "pbVar18") (= "=") (cast_expression "(byte *)".text.unlikely"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".text.unlikely"" (" """) (string_content ".text.unlikely") (" """)))) (; ";")) (expression_statement "pbVar20 = (byte *)local_40[2];" (assignment_expression "pbVar20 = (byte *)local_40[2]" (identifier "pbVar20") (= "=") (cast_expression "(byte *)local_40[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]")))) (; ";")) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while ((bool)uVar26);" (do "do") (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        uVar24 = *pbVar18 < *pbVar20;\n        uVar26 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar24 = *pbVar18 < *pbVar20;" (assignment_expression "uVar24 = *pbVar18 < *pbVar20" (identifier "uVar24") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "uVar26 = *pbVar18 == *pbVar20;" (assignment_expression "uVar26 = *pbVar18 == *pbVar20" (identifier "uVar26") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar26)" (( "(") (cast_expression "(bool)uVar26" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar26")) () ")")) (; ";")) (expression_statement "ppiVar15 = apiStack_60;" (assignment_expression "ppiVar15 = apiStack_60" (identifier "ppiVar15") (= "=") (identifier "apiStack_60")) (; ";")) (if_statement "if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }" (if "if") (parenthesized_expression "((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24)" (( "(") (binary_expression "(!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar26)" (( "(") (binary_expression "!(bool)uVar24 && !(bool)uVar26" (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) (&& "&&") (unary_expression "!(bool)uVar26" (! "!") (cast_expression "(bool)uVar26" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar26")))) () ")")) (== "==") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) () ")")) (compound_statement "{\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar17 = apiStack_60;\n        uVar9 = *(uint *)(*param_4 + 8);\n        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;\n        uVar4 = uVar1 & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }\n        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);\n        ppiVar16 = apiStack_60;\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        goto LAB_000aedb0;\n      }" ({ "{") (if_statement "if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }" (if "if") (parenthesized_expression "((byte *)local_40[2] != local_30)" (( "(") (binary_expression "(byte *)local_40[2] != local_30" (cast_expression "(byte *)local_40[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (identifier "local_30")) () ")")) (compound_statement "{\n          FUN_001e6db0(local_40[2]);\n        }" ({ "{") (expression_statement "FUN_001e6db0(local_40[2]);" (call_expression "FUN_001e6db0(local_40[2])" (identifier "FUN_001e6db0") (argument_list "(local_40[2])" (( "(") (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "ppiVar17 = apiStack_60;" (assignment_expression "ppiVar17 = apiStack_60" (identifier "ppiVar17") (= "=") (identifier "apiStack_60")) (; ";")) (expression_statement "uVar9 = *(uint *)(*param_4 + 8);" (assignment_expression "uVar9 = *(uint *)(*param_4 + 8)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(*param_4 + 8)" (* "*") (cast_expression "(uint *)(*param_4 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_4 + 8)" (( "(") (binary_expression "*param_4 + 8" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;" (assignment_expression "uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (identifier "uVar1") (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8")))) (; ";")) (if_statement "if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;" (if "if") (parenthesized_expression "(*(int *)(*apiStack_60[1] + 8) == 0)" (( "(") (binary_expression "*(int *)(*apiStack_60[1] + 8) == 0" (pointer_expression "*(int *)(*apiStack_60[1] + 8)" (* "*") (cast_expression "(int *)(*apiStack_60[1] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*apiStack_60[1] + 8)" (( "(") (binary_expression "*apiStack_60[1] + 8" (pointer_expression "*apiStack_60[1]" (* "*") (subscript_expression "apiStack_60[1]" (identifier "apiStack_60") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000af2db;" (goto "goto") (statement_identifier "LAB_000af2db") (; ";"))) (expression_statement "uVar4 = uVar1 & 0xfffff50f;" (assignment_expression "uVar4 = uVar1 & 0xfffff50f" (identifier "uVar4") (= "=") (binary_expression "uVar1 & 0xfffff50f" (identifier "uVar1") (& "&") (number_literal "0xfffff50f"))) (; ";")) (if_statement "if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar4 = uVar1 & 0xfffff58f;\n        }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0'" (pointer_expression "*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d)" (* "*") (cast_expression "(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*apiStack_60[1] + 8) + 0x318d)" (( "(") (binary_expression "*(int *)(*apiStack_60[1] + 8) + 0x318d" (pointer_expression "*(int *)(*apiStack_60[1] + 8)" (* "*") (cast_expression "(int *)(*apiStack_60[1] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*apiStack_60[1] + 8)" (( "(") (binary_expression "*apiStack_60[1] + 8" (pointer_expression "*apiStack_60[1]" (* "*") (subscript_expression "apiStack_60[1]" (identifier "apiStack_60") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x318d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          uVar4 = uVar1 & 0xfffff58f;\n        }" ({ "{") (expression_statement "uVar4 = uVar1 & 0xfffff58f;" (assignment_expression "uVar4 = uVar1 & 0xfffff58f" (identifier "uVar4") (= "=") (binary_expression "uVar1 & 0xfffff58f" (identifier "uVar1") (& "&") (number_literal "0xfffff58f"))) (; ";")) (} "}"))) (expression_statement "uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);" (assignment_expression "uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34)" (identifier "uVar7") (= "=") (call_expression "FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34)" (identifier "FUN_00174930") (argument_list "(unaff_retaddr + 8,apiStack_60[2],1,local_34)" (( "(") (binary_expression "unaff_retaddr + 8" (identifier "unaff_retaddr") (+ "+") (number_literal "8")) (, ",") (subscript_expression "apiStack_60[2]" (identifier "apiStack_60") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "1") (, ",") (identifier "local_34") () ")")))) (; ";")) (expression_statement "iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);" (assignment_expression "iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0)" (identifier "iVar8") (= "=") (call_expression "FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0)" (identifier "FUN_0009fd60") (argument_list "(unaff_retaddr,uVar7,local_40[2],param_5,\n                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0)" (( "(") (identifier "unaff_retaddr") (, ",") (identifier "uVar7") (, ",") (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "param_5") (, ",") (binary_expression "uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar4 | (uVar9 & 0xff00) << 8" (identifier "uVar4") (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18"))) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "ppiVar16 = apiStack_60;" (assignment_expression "ppiVar16 = apiStack_60" (identifier "ppiVar16") (= "=") (identifier "apiStack_60")) (; ";")) (expression_statement "*(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;" (assignment_expression "*(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar8 + 0x92)" (* "*") (cast_expression "(byte *)(iVar8 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x92)" (( "(") (binary_expression "iVar8 + 0x92" (identifier "iVar8") (+ "+") (number_literal "0x92")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar8 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar8 + 0x92)" (* "*") (cast_expression "(byte *)(iVar8 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x92)" (( "(") (binary_expression "iVar8 + 0x92" (identifier "iVar8") (+ "+") (number_literal "0x92")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (goto_statement "goto LAB_000aedb0;" (goto "goto") (statement_identifier "LAB_000aedb0") (; ";")) (} "}"))) (expression_statement "piVar13 = apiStack_60[1];" (assignment_expression "piVar13 = apiStack_60[1]" (identifier "piVar13") (= "=") (subscript_expression "apiStack_60[1]" (identifier "apiStack_60") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }" (if "if") (parenthesized_expression "((byte *)local_40[2] != local_30)" (( "(") (binary_expression "(byte *)local_40[2] != local_30" (cast_expression "(byte *)local_40[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (identifier "local_30")) () ")")) (compound_statement "{\n        FUN_001e6db0(local_40[2]);\n        ppiVar15 = apiStack_60;\n        piVar13 = apiStack_60[1];\n      }" ({ "{") (expression_statement "FUN_001e6db0(local_40[2]);" (call_expression "FUN_001e6db0(local_40[2])" (identifier "FUN_001e6db0") (argument_list "(local_40[2])" (( "(") (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]")) () ")"))) (; ";")) (expression_statement "ppiVar15 = apiStack_60;" (assignment_expression "ppiVar15 = apiStack_60" (identifier "ppiVar15") (= "=") (identifier "apiStack_60")) (; ";")) (expression_statement "piVar13 = apiStack_60[1];" (assignment_expression "piVar13 = apiStack_60[1]" (identifier "piVar13") (= "=") (subscript_expression "apiStack_60[1]" (identifier "apiStack_60") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "ppiVar15[1] = piVar13;" (assignment_expression "ppiVar15[1] = piVar13" (subscript_expression "ppiVar15[1]" (identifier "ppiVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "piVar13")) (; ";")) (expression_statement "ppiVar15[10] = ppiVar15[0x19];" (assignment_expression "ppiVar15[10] = ppiVar15[0x19]" (subscript_expression "ppiVar15[10]" (identifier "ppiVar15") ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "ppiVar15[0x19]" (identifier "ppiVar15") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "ppiVar15[0xb] = ppiVar15[0x1a];" (assignment_expression "ppiVar15[0xb] = ppiVar15[0x1a]" (subscript_expression "ppiVar15[0xb]" (identifier "ppiVar15") ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "ppiVar15[0x1a]" (identifier "ppiVar15") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "ppiVar15[-2] = (int *)local_34;" (assignment_expression "ppiVar15[-2] = (int *)local_34" (subscript_expression "ppiVar15[-2]" (identifier "ppiVar15") ([ "[") (number_literal "-2") (] "]")) (= "=") (cast_expression "(int *)local_34" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_34"))) (; ";")) (expression_statement "ppiVar15[-3] = ppiVar15[0x18] + 0x81;" (assignment_expression "ppiVar15[-3] = ppiVar15[0x18] + 0x81" (subscript_expression "ppiVar15[-3]" (identifier "ppiVar15") ([ "[") (number_literal "-3") (] "]")) (= "=") (binary_expression "ppiVar15[0x18] + 0x81" (subscript_expression "ppiVar15[0x18]" (identifier "ppiVar15") ([ "[") (number_literal "0x18") (] "]")) (+ "+") (number_literal "0x81"))) (; ";")) (expression_statement "ppiVar15[-4] = (int *)(ppiVar15 + 7);" (assignment_expression "ppiVar15[-4] = (int *)(ppiVar15 + 7)" (subscript_expression "ppiVar15[-4]" (identifier "ppiVar15") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int *)(ppiVar15 + 7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar15 + 7)" (( "(") (binary_expression "ppiVar15 + 7" (identifier "ppiVar15") (+ "+") (number_literal "7")) () ")")))) (; ";")) (expression_statement "ppiVar15[-5] = (int *)0xaece7;" (assignment_expression "ppiVar15[-5] = (int *)0xaece7" (subscript_expression "ppiVar15[-5]" (identifier "ppiVar15") ([ "[") (number_literal "-5") (] "]")) (= "=") (cast_expression "(int *)0xaece7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaece7"))) (; ";")) (expression_statement "FUN_000a9000();" (call_expression "FUN_000a9000()" (identifier "FUN_000a9000") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar13 = ppiVar15[6];" (assignment_expression "piVar13 = ppiVar15[6]" (identifier "piVar13") (= "=") (subscript_expression "ppiVar15[6]" (identifier "ppiVar15") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "ppiVar17 = ppiVar15 + -1;" (assignment_expression "ppiVar17 = ppiVar15 + -1" (identifier "ppiVar17") (= "=") (binary_expression "ppiVar15 + -1" (identifier "ppiVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);" (assignment_expression "uVar9 = *(uint *)(*ppiVar15[0x1b] + 8)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(*ppiVar15[0x1b] + 8)" (* "*") (cast_expression "(uint *)(*ppiVar15[0x1b] + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*ppiVar15[0x1b] + 8)" (( "(") (binary_expression "*ppiVar15[0x1b] + 8" (pointer_expression "*ppiVar15[0x1b]" (* "*") (subscript_expression "ppiVar15[0x1b]" (identifier "ppiVar15") ([ "[") (number_literal "0x1b") (] "]"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;" (assignment_expression "uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (identifier "uVar1") (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8")))) (; ";")) (expression_statement "uVar4 = (uVar9 & 0xff00) << 8;" (assignment_expression "uVar4 = (uVar9 & 0xff00) << 8" (identifier "uVar4") (= "=") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (; ";")) (if_statement "if (piVar13 == ppiVar15[0x17] + 0x82) {\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }" (if "if") (parenthesized_expression "(piVar13 == ppiVar15[0x17] + 0x82)" (( "(") (binary_expression "piVar13 == ppiVar15[0x17] + 0x82" (identifier "piVar13") (== "==") (binary_expression "ppiVar15[0x17] + 0x82" (subscript_expression "ppiVar15[0x17]" (identifier "ppiVar15") ([ "[") (number_literal "0x17") (] "]")) (+ "+") (number_literal "0x82"))) () ")")) (compound_statement "{\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)0x0;\n      ppiVar15[-6] = (int *)0x0;\n      ppiVar15[-7] = (int *)0x1;\n      ppiVar15[-8] = (int *)0x0;\n      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-10] = ppiVar15[0x1c];\n      ppiVar15[-0xb] = ppiVar15[0x1a];\n      ppiVar15[-0xc] = ppiVar15[0x18];\n      ppiVar15[-0xd] = ppiVar15[0x17];\n      ppiVar15[-0xe] = (int *)0xaf062;\n      iVar8 = FUN_0009fff0();\n      ppiVar16 = ppiVar15 + -1;\n      apiStack_60[1] = *ppiVar15;\n      if (iVar8 == 0) {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "ppiVar15[-3] = (int *)0x1;" (assignment_expression "ppiVar15[-3] = (int *)0x1" (subscript_expression "ppiVar15[-3]" (identifier "ppiVar15") ([ "[") (number_literal "-3") (] "]")) (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppiVar15[-4] = (int *)0x0;" (assignment_expression "ppiVar15[-4] = (int *)0x0" (subscript_expression "ppiVar15[-4]" (identifier "ppiVar15") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar15[-5] = (int *)0x0;" (assignment_expression "ppiVar15[-5] = (int *)0x0" (subscript_expression "ppiVar15[-5]" (identifier "ppiVar15") ([ "[") (number_literal "-5") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar15[-6] = (int *)0x0;" (assignment_expression "ppiVar15[-6] = (int *)0x0" (subscript_expression "ppiVar15[-6]" (identifier "ppiVar15") ([ "[") (number_literal "-6") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar15[-7] = (int *)0x1;" (assignment_expression "ppiVar15[-7] = (int *)0x1" (subscript_expression "ppiVar15[-7]" (identifier "ppiVar15") ([ "[") (number_literal "-7") (] "]")) (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppiVar15[-8] = (int *)0x0;" (assignment_expression "ppiVar15[-8] = (int *)0x0" (subscript_expression "ppiVar15[-8]" (identifier "ppiVar15") ([ "[") (number_literal "-8") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);" (assignment_expression "ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18)" (subscript_expression "ppiVar15[-9]" (identifier "ppiVar15") ([ "[") (number_literal "-9") (] "]")) (= "=") (cast_expression "(int *)(uVar1 | uVar4 | uVar9 << 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar1 | uVar4 | uVar9 << 0x18)" (( "(") (binary_expression "uVar1 | uVar4 | uVar9 << 0x18" (binary_expression "uVar1 | uVar4" (identifier "uVar1") (| "|") (identifier "uVar4")) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "ppiVar15[-10] = ppiVar15[0x1c];" (assignment_expression "ppiVar15[-10] = ppiVar15[0x1c]" (subscript_expression "ppiVar15[-10]" (identifier "ppiVar15") ([ "[") (number_literal "-10") (] "]")) (= "=") (subscript_expression "ppiVar15[0x1c]" (identifier "ppiVar15") ([ "[") (number_literal "0x1c") (] "]"))) (; ";")) (expression_statement "ppiVar15[-0xb] = ppiVar15[0x1a];" (assignment_expression "ppiVar15[-0xb] = ppiVar15[0x1a]" (subscript_expression "ppiVar15[-0xb]" (identifier "ppiVar15") ([ "[") (number_literal "-0xb") (] "]")) (= "=") (subscript_expression "ppiVar15[0x1a]" (identifier "ppiVar15") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "ppiVar15[-0xc] = ppiVar15[0x18];" (assignment_expression "ppiVar15[-0xc] = ppiVar15[0x18]" (subscript_expression "ppiVar15[-0xc]" (identifier "ppiVar15") ([ "[") (number_literal "-0xc") (] "]")) (= "=") (subscript_expression "ppiVar15[0x18]" (identifier "ppiVar15") ([ "[") (number_literal "0x18") (] "]"))) (; ";")) (expression_statement "ppiVar15[-0xd] = ppiVar15[0x17];" (assignment_expression "ppiVar15[-0xd] = ppiVar15[0x17]" (subscript_expression "ppiVar15[-0xd]" (identifier "ppiVar15") ([ "[") (number_literal "-0xd") (] "]")) (= "=") (subscript_expression "ppiVar15[0x17]" (identifier "ppiVar15") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "ppiVar15[-0xe] = (int *)0xaf062;" (assignment_expression "ppiVar15[-0xe] = (int *)0xaf062" (subscript_expression "ppiVar15[-0xe]" (identifier "ppiVar15") ([ "[") (number_literal "-0xe") (] "]")) (= "=") (cast_expression "(int *)0xaf062" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaf062"))) (; ";")) (expression_statement "iVar8 = FUN_0009fff0();" (assignment_expression "iVar8 = FUN_0009fff0()" (identifier "iVar8") (= "=") (call_expression "FUN_0009fff0()" (identifier "FUN_0009fff0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ppiVar16 = ppiVar15 + -1;" (assignment_expression "ppiVar16 = ppiVar15 + -1" (identifier "ppiVar16") (= "=") (binary_expression "ppiVar15 + -1" (identifier "ppiVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "apiStack_60[1] = *ppiVar15;" (assignment_expression "apiStack_60[1] = *ppiVar15" (subscript_expression "apiStack_60[1]" (identifier "apiStack_60") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*ppiVar15" (* "*") (identifier "ppiVar15"))) (; ";")) (if_statement "if (iVar8 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }" (else "else") (compound_statement "{\n      iVar8 = *(int *)(**ppiVar15 + 8);\n      if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }\n      uVar5 = uVar1 & 0xfffff50f;\n      if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar13[6];\n      *ppiVar15 = *ppiVar15;\n      ppiVar15[-2] = (int *)local_34;\n      ppiVar15[-3] = (int *)0x1;\n      ppiVar15[-4] = (int *)*puVar2;\n      ppiVar15[-5] = ppiVar15[0x17] + 2;\n      ppiVar15[-6] = (int *)0xaed4e;\n      uVar7 = FUN_00174930();\n      ppiVar15[-2] = (int *)0x0;\n      ppiVar15[-3] = (int *)0x0;\n      ppiVar15[-4] = (int *)0x0;\n      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);\n      ppiVar15[-6] = ppiVar15[0x1c];\n      ppiVar15[-7] = ppiVar15[9];\n      ppiVar15[-8] = (int *)uVar7;\n      ppiVar15[-9] = ppiVar15[0x17];\n      ppiVar15[-10] = (int *)0xaed6c;\n      iVar8 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar15;\n      ppiVar16 = ppiVar15 + -1;\n      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }\n    }" ({ "{") (expression_statement "iVar8 = *(int *)(**ppiVar15 + 8);" (assignment_expression "iVar8 = *(int *)(**ppiVar15 + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(**ppiVar15 + 8)" (* "*") (cast_expression "(int *)(**ppiVar15 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**ppiVar15 + 8)" (( "(") (binary_expression "**ppiVar15 + 8" (pointer_expression "**ppiVar15" (* "*") (pointer_expression "*ppiVar15" (* "*") (identifier "ppiVar15"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) {\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;\n        FUN_00096010();\n      }" ({ "{") (labeled_statement "LAB_000af2db:\n                    \n        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;" (statement_identifier "LAB_000af2db") (: ":") (expression_statement "*(code **)((int)ppiVar17 + -4) = FUN_000af2e0;" (assignment_expression "*(code **)((int)ppiVar17 + -4) = FUN_000af2e0" (pointer_expression "*(code **)((int)ppiVar17 + -4)" (* "*") (cast_expression "(code **)((int)ppiVar17 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar17 + -4)" (( "(") (binary_expression "(int)ppiVar17 + -4" (cast_expression "(int)ppiVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar17")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "FUN_000af2e0")) (; ";"))) (expression_statement "FUN_00096010();" (call_expression "FUN_00096010()" (identifier "FUN_00096010") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar5 = uVar1 & 0xfffff50f;" (assignment_expression "uVar5 = uVar1 & 0xfffff50f" (identifier "uVar5") (= "=") (binary_expression "uVar1 & 0xfffff50f" (identifier "uVar1") (& "&") (number_literal "0xfffff50f"))) (; ";")) (if_statement "if (*(char *)(iVar8 + 0x318d) != '\0') {\n        uVar5 = uVar1 & 0xfffff58f;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar8 + 0x318d) != '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x318d)" (* "*") (cast_expression "(char *)(iVar8 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x318d)" (( "(") (binary_expression "iVar8 + 0x318d" (identifier "iVar8") (+ "+") (number_literal "0x318d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar5 = uVar1 & 0xfffff58f;\n      }" ({ "{") (expression_statement "uVar5 = uVar1 & 0xfffff58f;" (assignment_expression "uVar5 = uVar1 & 0xfffff58f" (identifier "uVar5") (= "=") (binary_expression "uVar1 & 0xfffff58f" (identifier "uVar1") (& "&") (number_literal "0xfffff58f"))) (; ";")) (} "}"))) (expression_statement "puVar2 = (undefined4 *)piVar13[6];" (assignment_expression "puVar2 = (undefined4 *)piVar13[6]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)piVar13[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar13[6]" (identifier "piVar13") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "*ppiVar15 = *ppiVar15;" (assignment_expression "*ppiVar15 = *ppiVar15" (pointer_expression "*ppiVar15" (* "*") (identifier "ppiVar15")) (= "=") (pointer_expression "*ppiVar15" (* "*") (identifier "ppiVar15"))) (; ";")) (expression_statement "ppiVar15[-2] = (int *)local_34;" (assignment_expression "ppiVar15[-2] = (int *)local_34" (subscript_expression "ppiVar15[-2]" (identifier "ppiVar15") ([ "[") (number_literal "-2") (] "]")) (= "=") (cast_expression "(int *)local_34" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_34"))) (; ";")) (expression_statement "ppiVar15[-3] = (int *)0x1;" (assignment_expression "ppiVar15[-3] = (int *)0x1" (subscript_expression "ppiVar15[-3]" (identifier "ppiVar15") ([ "[") (number_literal "-3") (] "]")) (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppiVar15[-4] = (int *)*puVar2;" (assignment_expression "ppiVar15[-4] = (int *)*puVar2" (subscript_expression "ppiVar15[-4]" (identifier "ppiVar15") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int *)*puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";")) (expression_statement "ppiVar15[-5] = ppiVar15[0x17] + 2;" (assignment_expression "ppiVar15[-5] = ppiVar15[0x17] + 2" (subscript_expression "ppiVar15[-5]" (identifier "ppiVar15") ([ "[") (number_literal "-5") (] "]")) (= "=") (binary_expression "ppiVar15[0x17] + 2" (subscript_expression "ppiVar15[0x17]" (identifier "ppiVar15") ([ "[") (number_literal "0x17") (] "]")) (+ "+") (number_literal "2"))) (; ";")) (expression_statement "ppiVar15[-6] = (int *)0xaed4e;" (assignment_expression "ppiVar15[-6] = (int *)0xaed4e" (subscript_expression "ppiVar15[-6]" (identifier "ppiVar15") ([ "[") (number_literal "-6") (] "]")) (= "=") (cast_expression "(int *)0xaed4e" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaed4e"))) (; ";")) (expression_statement "uVar7 = FUN_00174930();" (assignment_expression "uVar7 = FUN_00174930()" (identifier "uVar7") (= "=") (call_expression "FUN_00174930()" (identifier "FUN_00174930") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ppiVar15[-2] = (int *)0x0;" (assignment_expression "ppiVar15[-2] = (int *)0x0" (subscript_expression "ppiVar15[-2]" (identifier "ppiVar15") ([ "[") (number_literal "-2") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar15[-3] = (int *)0x0;" (assignment_expression "ppiVar15[-3] = (int *)0x0" (subscript_expression "ppiVar15[-3]" (identifier "ppiVar15") ([ "[") (number_literal "-3") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar15[-4] = (int *)0x0;" (assignment_expression "ppiVar15[-4] = (int *)0x0" (subscript_expression "ppiVar15[-4]" (identifier "ppiVar15") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);" (assignment_expression "ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18)" (subscript_expression "ppiVar15[-5]" (identifier "ppiVar15") ([ "[") (number_literal "-5") (] "]")) (= "=") (cast_expression "(int *)(uVar5 | uVar4 | uVar9 << 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar5 | uVar4 | uVar9 << 0x18)" (( "(") (binary_expression "uVar5 | uVar4 | uVar9 << 0x18" (binary_expression "uVar5 | uVar4" (identifier "uVar5") (| "|") (identifier "uVar4")) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "ppiVar15[-6] = ppiVar15[0x1c];" (assignment_expression "ppiVar15[-6] = ppiVar15[0x1c]" (subscript_expression "ppiVar15[-6]" (identifier "ppiVar15") ([ "[") (number_literal "-6") (] "]")) (= "=") (subscript_expression "ppiVar15[0x1c]" (identifier "ppiVar15") ([ "[") (number_literal "0x1c") (] "]"))) (; ";")) (expression_statement "ppiVar15[-7] = ppiVar15[9];" (assignment_expression "ppiVar15[-7] = ppiVar15[9]" (subscript_expression "ppiVar15[-7]" (identifier "ppiVar15") ([ "[") (number_literal "-7") (] "]")) (= "=") (subscript_expression "ppiVar15[9]" (identifier "ppiVar15") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "ppiVar15[-8] = (int *)uVar7;" (assignment_expression "ppiVar15[-8] = (int *)uVar7" (subscript_expression "ppiVar15[-8]" (identifier "ppiVar15") ([ "[") (number_literal "-8") (] "]")) (= "=") (cast_expression "(int *)uVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar7"))) (; ";")) (expression_statement "ppiVar15[-9] = ppiVar15[0x17];" (assignment_expression "ppiVar15[-9] = ppiVar15[0x17]" (subscript_expression "ppiVar15[-9]" (identifier "ppiVar15") ([ "[") (number_literal "-9") (] "]")) (= "=") (subscript_expression "ppiVar15[0x17]" (identifier "ppiVar15") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "ppiVar15[-10] = (int *)0xaed6c;" (assignment_expression "ppiVar15[-10] = (int *)0xaed6c" (subscript_expression "ppiVar15[-10]" (identifier "ppiVar15") ([ "[") (number_literal "-10") (] "]")) (= "=") (cast_expression "(int *)0xaed6c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaed6c"))) (; ";")) (expression_statement "iVar8 = FUN_0009fd60();" (assignment_expression "iVar8 = FUN_0009fd60()" (identifier "iVar8") (= "=") (call_expression "FUN_0009fd60()" (identifier "FUN_0009fd60") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "apiStack_60[1] = *ppiVar15;" (assignment_expression "apiStack_60[1] = *ppiVar15" (subscript_expression "apiStack_60[1]" (identifier "apiStack_60") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*ppiVar15" (* "*") (identifier "ppiVar15"))) (; ";")) (expression_statement "ppiVar16 = ppiVar15 + -1;" (assignment_expression "ppiVar16 = ppiVar15 + -1" (identifier "ppiVar16") (= "=") (binary_expression "ppiVar15 + -1" (identifier "ppiVar15") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (-1 < (char)*(byte *)(iVar8 + 0x92)) {\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }" (if "if") (parenthesized_expression "(-1 < (char)*(byte *)(iVar8 + 0x92))" (( "(") (binary_expression "-1 < (char)*(byte *)(iVar8 + 0x92)" (number_literal "-1") (< "<") (cast_expression "(char)*(byte *)(iVar8 + 0x92)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(iVar8 + 0x92)" (* "*") (cast_expression "(byte *)(iVar8 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x92)" (( "(") (binary_expression "iVar8 + 0x92" (identifier "iVar8") (+ "+") (number_literal "0x92")) () ")")))))) () ")")) (compound_statement "{\n        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;\n        iVar12 = piVar13[6];\n        uVar7 = *(undefined4 *)(iVar12 + 8);\n        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);\n        uVar3 = *(undefined4 *)(iVar12 + 0xc);\n        *(undefined4 *)(iVar8 + 0xa0) = uVar7;\n        uVar7 = *(undefined4 *)(iVar12 + 0x10);\n        *(undefined4 *)(iVar8 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar8 + 0xa8) = uVar7;\n        ppiVar16 = ppiVar15 + -1;\n      }" ({ "{") (expression_statement "*(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;" (assignment_expression "*(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar8 + 0x92)" (* "*") (cast_expression "(byte *)(iVar8 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x92)" (( "(") (binary_expression "iVar8 + 0x92" (identifier "iVar8") (+ "+") (number_literal "0x92")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar8 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar8 + 0x92)" (* "*") (cast_expression "(byte *)(iVar8 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x92)" (( "(") (binary_expression "iVar8 + 0x92" (identifier "iVar8") (+ "+") (number_literal "0x92")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (expression_statement "iVar12 = piVar13[6];" (assignment_expression "iVar12 = piVar13[6]" (identifier "iVar12") (= "=") (subscript_expression "piVar13[6]" (identifier "piVar13") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar7 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar7 = *(undefined4 *)(iVar12 + 8)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);" (assignment_expression "*(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4)" (pointer_expression "*(undefined4 *)(iVar8 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x9c)" (( "(") (binary_expression "iVar8 + 0x9c" (identifier "iVar8") (+ "+") (number_literal "0x9c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(iVar12 + 0xc);" (assignment_expression "uVar3 = *(undefined4 *)(iVar12 + 0xc)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc)" (( "(") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0xa0) = uVar7;" (assignment_expression "*(undefined4 *)(iVar8 + 0xa0) = uVar7" (pointer_expression "*(undefined4 *)(iVar8 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xa0)" (( "(") (binary_expression "iVar8 + 0xa0" (identifier "iVar8") (+ "+") (number_literal "0xa0")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar7 = *(undefined4 *)(iVar12 + 0x10);" (assignment_expression "uVar7 = *(undefined4 *)(iVar12 + 0x10)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0xa4) = uVar3;" (assignment_expression "*(undefined4 *)(iVar8 + 0xa4) = uVar3" (pointer_expression "*(undefined4 *)(iVar8 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xa4)" (( "(") (binary_expression "iVar8 + 0xa4" (identifier "iVar8") (+ "+") (number_literal "0xa4")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0xa8) = uVar7;" (assignment_expression "*(undefined4 *)(iVar8 + 0xa8) = uVar7" (pointer_expression "*(undefined4 *)(iVar8 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xa8)" (( "(") (binary_expression "iVar8 + 0xa8" (identifier "iVar8") (+ "+") (number_literal "0xa8")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "ppiVar16 = ppiVar15 + -1;" (assignment_expression "ppiVar16 = ppiVar15 + -1" (identifier "ppiVar16") (= "=") (binary_expression "ppiVar15 + -1" (identifier "ppiVar15") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" (else "else") (compound_statement "{\n    uVar1 = *(uint *)(*param_5 + 8);\n    uVar4 = (uVar1 & 0xff0000) >> 8;\n    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar7 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);\n    ppiVar16 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" ({ "{") (expression_statement "uVar1 = *(uint *)(*param_5 + 8);" (assignment_expression "uVar1 = *(uint *)(*param_5 + 8)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(*param_5 + 8)" (* "*") (cast_expression "(uint *)(*param_5 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_5 + 8)" (( "(") (binary_expression "*param_5 + 8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar4 = (uVar1 & 0xff0000) >> 8;" (assignment_expression "uVar4 = (uVar1 & 0xff0000) >> 8" (identifier "uVar4") (= "=") (binary_expression "(uVar1 & 0xff0000) >> 8" (parenthesized_expression "(uVar1 & 0xff0000)" (( "(") (binary_expression "uVar1 & 0xff0000" (identifier "uVar1") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (; ";")) (if_statement "if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;" (if "if") (parenthesized_expression "((uVar4 & 0x200) == 0)" (( "(") (binary_expression "(uVar4 & 0x200) == 0" (parenthesized_expression "(uVar4 & 0x200)" (( "(") (binary_expression "uVar4 & 0x200" (identifier "uVar4") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000aeca9;" (goto "goto") (statement_identifier "LAB_000aeca9") (; ";"))) (expression_statement "apiStack_60[0] = (int *)0x0;" (assignment_expression "apiStack_60[0] = (int *)0x0" (subscript_expression "apiStack_60[0]" (identifier "apiStack_60") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "apiStack_60[2] = &DAT_0038f378;" (assignment_expression "apiStack_60[2] = &DAT_0038f378" (subscript_expression "apiStack_60[2]" (identifier "apiStack_60") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "&DAT_0038f378" (& "&") (identifier "DAT_0038f378"))) (; ";")) (expression_statement "uVar7 = FUN_00174930(param_1 + 8,param_4,1);" (assignment_expression "uVar7 = FUN_00174930(param_1 + 8,param_4,1)" (identifier "uVar7") (= "=") (call_expression "FUN_00174930(param_1 + 8,param_4,1)" (identifier "FUN_00174930") (argument_list "(param_1 + 8,param_4,1)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) (, ",") (identifier "param_4") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0);" (assignment_expression "iVar8 = FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0)" (identifier "iVar8") (= "=") (call_expression "FUN_0009b860(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0)" (identifier "FUN_0009b860") (argument_list "(param_1,uVar7,param_6,\n                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,\n                         0,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar7") (, ",") (identifier "param_6") (, ",") (binary_expression "uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18" (binary_expression "uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8" (binary_expression "uVar1 >> 0x18 | uVar4 & 0xfffff7ff" (binary_expression "uVar1 >> 0x18" (identifier "uVar1") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "uVar4 & 0xfffff7ff" (identifier "uVar4") (& "&") (number_literal "0xfffff7ff"))) (| "|") (binary_expression "(uVar1 & 0xff00) << 8" (parenthesized_expression "(uVar1 & 0xff00)" (( "(") (binary_expression "uVar1 & 0xff00" (identifier "uVar1") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar1 << 0x18" (identifier "uVar1") (<< "<<") (number_literal "0x18"))) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "ppiVar16 = apiStack_60 + 1;" (assignment_expression "ppiVar16 = apiStack_60 + 1" (identifier "ppiVar16") (= "=") (binary_expression "apiStack_60 + 1" (identifier "apiStack_60") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "apiStack_60[1] = apiStack_60[2];" (assignment_expression "apiStack_60[1] = apiStack_60[2]" (subscript_expression "apiStack_60[1]" (identifier "apiStack_60") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "apiStack_60[2]" (identifier "apiStack_60") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")))) (labeled_statement "LAB_000aedb0:\n  piVar13 = (int *)ppiVar16[0x18][1];" (statement_identifier "LAB_000aedb0") (: ":") (expression_statement "piVar13 = (int *)ppiVar16[0x18][1];" (assignment_expression "piVar13 = (int *)ppiVar16[0x18][1]" (identifier "piVar13") (= "=") (cast_expression "(int *)ppiVar16[0x18][1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0x18][1]" (subscript_expression "ppiVar16[0x18]" (identifier "ppiVar16") ([ "[") (number_literal "0x18") (] "]")) ([ "[") (number_literal "1") (] "]")))) (; ";"))) (expression_statement "piVar14 = *(int **)(*apiStack_60[1] + 8);" (assignment_expression "piVar14 = *(int **)(*apiStack_60[1] + 8)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(*apiStack_60[1] + 8)" (* "*") (cast_expression "(int **)(*apiStack_60[1] + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*apiStack_60[1] + 8)" (( "(") (binary_expression "*apiStack_60[1] + 8" (pointer_expression "*apiStack_60[1]" (* "*") (subscript_expression "apiStack_60[1]" (identifier "apiStack_60") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "ppiVar16[1] = piVar13;" (assignment_expression "ppiVar16[1] = piVar13" (subscript_expression "ppiVar16[1]" (identifier "ppiVar16") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "piVar13")) (; ";")) (expression_statement "bVar11 = *(byte *)(piVar13 + 0x2b);" (assignment_expression "bVar11 = *(byte *)(piVar13 + 0x2b)" (identifier "bVar11") (= "=") (pointer_expression "*(byte *)(piVar13 + 0x2b)" (* "*") (cast_expression "(byte *)(piVar13 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar13 + 0x2b)" (( "(") (binary_expression "piVar13 + 0x2b" (identifier "piVar13") (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (expression_statement "uVar9 = (uint)bVar11;" (assignment_expression "uVar9 = (uint)bVar11" (identifier "uVar9") (= "=") (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11"))) (; ";")) (if_statement "if (bVar11 != 0) {\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }" (if "if") (parenthesized_expression "(bVar11 != 0)" (( "(") (binary_expression "bVar11 != 0" (identifier "bVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (piVar14 == (int *)0x0) goto LAB_000af218;\n    goto LAB_000aeee2;\n  }" ({ "{") (if_statement "if (piVar14 == (int *)0x0) goto LAB_000af218;" (if "if") (parenthesized_expression "(piVar14 == (int *)0x0)" (( "(") (binary_expression "piVar14 == (int *)0x0" (identifier "piVar14") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000af218;" (goto "goto") (statement_identifier "LAB_000af218") (; ";"))) (goto_statement "goto LAB_000aeee2;" (goto "goto") (statement_identifier "LAB_000aeee2") (; ";")) (} "}"))) (if_statement "if (piVar14 == (int *)0x0) {\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }" (if "if") (parenthesized_expression "(piVar14 == (int *)0x0)" (( "(") (binary_expression "piVar14 == (int *)0x0" (identifier "piVar14") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;\n    ppiVar16[0xfffffffe] = (int *)"options";\n    ppiVar16[0xfffffffd] = (int *)0x5c;\n    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar16[0xfffffffb] = (int *)0xaf22e;\n    FUN_00069d00();\n  }" ({ "{") (labeled_statement "LAB_000af218:\n    ppiVar16[0xffffffff] = (int *)uVar9;" (statement_identifier "LAB_000af218") (: ":") (expression_statement "ppiVar16[0xffffffff] = (int *)uVar9;" (assignment_expression "ppiVar16[0xffffffff] = (int *)uVar9" (subscript_expression "ppiVar16[0xffffffff]" (identifier "ppiVar16") ([ "[") (number_literal "0xffffffff") (] "]")) (= "=") (cast_expression "(int *)uVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar9"))) (; ";"))) (expression_statement "ppiVar16[0xfffffffe] = (int *)"options";" (assignment_expression "ppiVar16[0xfffffffe] = (int *)"options"" (subscript_expression "ppiVar16[0xfffffffe]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffe") (] "]")) (= "=") (cast_expression "(int *)"options"" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""options"" (" """) (string_content "options") (" """)))) (; ";")) (expression_statement "ppiVar16[0xfffffffd] = (int *)0x5c;" (assignment_expression "ppiVar16[0xfffffffd] = (int *)0x5c" (subscript_expression "ppiVar16[0xfffffffd]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffd") (] "]")) (= "=") (cast_expression "(int *)0x5c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5c"))) (; ";")) (expression_statement "ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";" (assignment_expression "ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h"" (subscript_expression "ppiVar16[0xfffffffc]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffc") (] "]")) (= "=") (cast_expression "(int *)"../../gold/parameters.h"" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)))) (; ";")) (expression_statement "ppiVar16[0xfffffffb] = (int *)0xaf22e;" (assignment_expression "ppiVar16[0xfffffffb] = (int *)0xaf22e" (subscript_expression "ppiVar16[0xfffffffb]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffb") (] "]")) (= "=") (cast_expression "(int *)0xaf22e" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaf22e"))) (; ";")) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" (identifier "FUN_00069d00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';" (assignment_expression "bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0'" (identifier "bVar25") (= "=") (binary_expression "*(char *)((int)piVar14 + 0x318d) == '\0'" (pointer_expression "*(char *)((int)piVar14 + 0x318d)" (* "*") (cast_expression "(char *)((int)piVar14 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + 0x318d)" (( "(") (binary_expression "(int)piVar14 + 0x318d" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "0x318d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!bVar25) goto LAB_000af100;" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (goto_statement "goto LAB_000af100;" (goto "goto") (statement_identifier "LAB_000af100") (; ";"))) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" (identifier "iVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar18 = (byte *)".ctors.";" (assignment_expression "pbVar18 = (byte *)".ctors."" (identifier "pbVar18") (= "=") (cast_expression "(byte *)".ctors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors."" (" """) (string_content ".ctors.") (" """)))) (; ";")) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" (identifier "pbVar20") (= "=") (cast_expression "(byte *)ppiVar16[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0x1b]" (identifier "ppiVar16") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (do_statement "do {\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  } while (bVar25);" (do "do") (compound_statement "{\n    if (iVar12 == 0) break;\n    iVar12 = iVar12 + -1;\n    bVar22 = *pbVar18 < *pbVar20;\n    bVar25 = *pbVar18 == *pbVar20;\n    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n  }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar25 = *pbVar18 == *pbVar20;" (assignment_expression "bVar25 = *pbVar18 == *pbVar20" (identifier "bVar25") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar22 && !bVar25) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar25) == bVar22" (identifier "bVar22") (= "=") (binary_expression "(!bVar22 && !bVar25) == bVar22" (parenthesized_expression "(!bVar22 && !bVar25)" (( "(") (binary_expression "!bVar22 && !bVar25" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar22"))) (; ";")) (if_statement "if (bVar22) {\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }\n  else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (compound_statement "{\nLAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n    uVar9 = (uint)bVar11;\n    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }\n    if (bVar11 != 0) goto LAB_000aeee2;\nLAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\n    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;\n    if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }\n  }" ({ "{") (labeled_statement "LAB_000aee98:\n    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;" (statement_identifier "LAB_000aee98") (: ":") (expression_statement "*(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;" (assignment_expression "*(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8" (pointer_expression "*(byte *)(iVar8 + 0x91)" (* "*") (cast_expression "(byte *)(iVar8 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x91)" (( "(") (binary_expression "iVar8 + 0x91" (identifier "iVar8") (+ "+") (number_literal "0x91")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar8 + 0x91) | 8" (pointer_expression "*(byte *)(iVar8 + 0x91)" (* "*") (cast_expression "(byte *)(iVar8 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x91)" (( "(") (binary_expression "iVar8 + 0x91" (identifier "iVar8") (+ "+") (number_literal "0x91")) () ")")))) (| "|") (number_literal "8"))) (; ";"))) (expression_statement "bVar11 = *(byte *)(ppiVar16[1] + 0x2b);" (assignment_expression "bVar11 = *(byte *)(ppiVar16[1] + 0x2b)" (identifier "bVar11") (= "=") (pointer_expression "*(byte *)(ppiVar16[1] + 0x2b)" (* "*") (cast_expression "(byte *)(ppiVar16[1] + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar16[1] + 0x2b)" (( "(") (binary_expression "ppiVar16[1] + 0x2b" (subscript_expression "ppiVar16[1]" (identifier "ppiVar16") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (expression_statement "uVar9 = (uint)bVar11;" (assignment_expression "uVar9 = (uint)bVar11" (identifier "uVar9") (= "=") (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11"))) (; ";")) (if_statement "if (*(char *)((int)piVar14 + 0x3ced) == '\0') {\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }" (if "if") (parenthesized_expression "(*(char *)((int)piVar14 + 0x3ced) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar14 + 0x3ced) == '\0'" (pointer_expression "*(char *)((int)piVar14 + 0x3ced)" (* "*") (cast_expression "(char *)((int)piVar14 + 0x3ced)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + 0x3ced)" (( "(") (binary_expression "(int)piVar14 + 0x3ced" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "0x3ced")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;\n      goto LAB_000af10d;\n    }" ({ "{") (labeled_statement "LAB_000af249:\n      if (bVar11 != 0) goto LAB_000aeee2;" (statement_identifier "LAB_000af249") (: ":") (if_statement "if (bVar11 != 0) goto LAB_000aeee2;" (if "if") (parenthesized_expression "(bVar11 != 0)" (( "(") (binary_expression "bVar11 != 0" (identifier "bVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000aeee2;" (goto "goto") (statement_identifier "LAB_000aeee2") (; ";")))) (goto_statement "goto LAB_000af10d;" (goto "goto") (statement_identifier "LAB_000af10d") (; ";")) (} "}"))) (if_statement "if (bVar11 != 0) goto LAB_000aeee2;" (if "if") (parenthesized_expression "(bVar11 != 0)" (( "(") (binary_expression "bVar11 != 0" (identifier "bVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000aeee2;" (goto "goto") (statement_identifier "LAB_000aeee2") (; ";"))) (labeled_statement "LAB_000aeebd:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);" (statement_identifier "LAB_000aeebd") (: ":") (expression_statement "cVar6 = *(char *)((int)piVar14 + 0x318d);" (assignment_expression "cVar6 = *(char *)((int)piVar14 + 0x318d)" (identifier "cVar6") (= "=") (pointer_expression "*(char *)((int)piVar14 + 0x318d)" (* "*") (cast_expression "(char *)((int)piVar14 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + 0x318d)" (( "(") (binary_expression "(int)piVar14 + 0x318d" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "0x318d")) () ")"))))) (; ";"))) (if_statement "if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;" (if "if") (parenthesized_expression "(*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0')" (( "(") (binary_expression "*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0'" (pointer_expression "*(char *)((int)ppiVar16[0x18] + 0x1cd)" (* "*") (cast_expression "(char *)((int)ppiVar16[0x18] + 0x1cd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16[0x18] + 0x1cd)" (( "(") (binary_expression "(int)ppiVar16[0x18] + 0x1cd" (cast_expression "(int)ppiVar16[0x18]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar16[0x18]" (identifier "ppiVar16") ([ "[") (number_literal "0x18") (] "]"))) (+ "+") (number_literal "0x1cd")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000af114;" (goto "goto") (statement_identifier "LAB_000af114") (; ";"))) (if_statement "if (cVar6 == '\0') {\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }" (if "if") (parenthesized_expression "(cVar6 == '\0')" (( "(") (binary_expression "cVar6 == '\0'" (identifier "cVar6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      ppiVar16[3] = piVar14;\n      ppuVar19 = &PTR_s__text_unlikely_003837a0;\n      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar21 = ".text.unlikely";\n      sVar10 = 0xe;\n      while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }\n      piVar14 = ppiVar16[3];\n      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;\n      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);\n      uVar9 = (uint)bVar11;\n      goto LAB_000af249;\n    }" ({ "{") (expression_statement "ppiVar16[3] = piVar14;" (assignment_expression "ppiVar16[3] = piVar14" (subscript_expression "ppiVar16[3]" (identifier "ppiVar16") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "piVar14")) (; ";")) (expression_statement "ppuVar19 = &PTR_s__text_unlikely_003837a0;" (assignment_expression "ppuVar19 = &PTR_s__text_unlikely_003837a0" (identifier "ppuVar19") (= "=") (pointer_expression "&PTR_s__text_unlikely_003837a0" (& "&") (identifier "PTR_s__text_unlikely_003837a0"))) (; ";")) (expression_statement "ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;" (assignment_expression "ppiVar16[2] = (int *)&PTR_s_aranges_003837b0" (subscript_expression "ppiVar16[2]" (identifier "ppiVar16") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int *)&PTR_s_aranges_003837b0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&PTR_s_aranges_003837b0" (& "&") (identifier "PTR_s_aranges_003837b0")))) (; ";")) (expression_statement "pcVar21 = ".text.unlikely";" (assignment_expression "pcVar21 = ".text.unlikely"" (identifier "pcVar21") (= "=") (string_literal "".text.unlikely"" (" """) (string_content ".text.unlikely") (" """))) (; ";")) (expression_statement "sVar10 = 0xe;" (assignment_expression "sVar10 = 0xe" (identifier "sVar10") (= "=") (number_literal "0xe")) (; ";")) (while_statement "while( true ) {\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        ppiVar16[0xfffffffe] = (int *)sVar10;\n        ppiVar16[0xfffffffd] = ppiVar16[0x1b];\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf28d;\n        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);\n        if (iVar12 == 0) break;\n        ppuVar19 = ppuVar19 + 1;\n        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;\n        pcVar21 = *ppuVar19;\n        ppiVar16[0xfffffffc] = (int *)pcVar21;\n        ppiVar16[0xfffffffb] = (int *)0xaf2ac;\n        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);\n      }" ({ "{") (expression_statement "ppiVar16[0xfffffffe] = (int *)sVar10;" (assignment_expression "ppiVar16[0xfffffffe] = (int *)sVar10" (subscript_expression "ppiVar16[0xfffffffe]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffe") (] "]")) (= "=") (cast_expression "(int *)sVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "sVar10"))) (; ";")) (expression_statement "ppiVar16[0xfffffffd] = ppiVar16[0x1b];" (assignment_expression "ppiVar16[0xfffffffd] = ppiVar16[0x1b]" (subscript_expression "ppiVar16[0xfffffffd]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffd") (] "]")) (= "=") (subscript_expression "ppiVar16[0x1b]" (identifier "ppiVar16") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (expression_statement "ppiVar16[0xfffffffc] = (int *)pcVar21;" (assignment_expression "ppiVar16[0xfffffffc] = (int *)pcVar21" (subscript_expression "ppiVar16[0xfffffffc]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffc") (] "]")) (= "=") (cast_expression "(int *)pcVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar21"))) (; ";")) (expression_statement "ppiVar16[0xfffffffb] = (int *)0xaf28d;" (assignment_expression "ppiVar16[0xfffffffb] = (int *)0xaf28d" (subscript_expression "ppiVar16[0xfffffffb]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffb") (] "]")) (= "=") (cast_expression "(int *)0xaf28d" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaf28d"))) (; ";")) (expression_statement "iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe]);" (assignment_expression "iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe])" (identifier "iVar12") (= "=") (call_expression "strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe])" (identifier "strncmp") (argument_list "((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],\n                         (size_t)ppiVar16[0xfffffffe])" (( "(") (cast_expression "(char *)ppiVar16[0xfffffffc]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0xfffffffc]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffc") (] "]"))) (, ",") (cast_expression "(char *)ppiVar16[0xfffffffd]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0xfffffffd]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffd") (] "]"))) (, ",") (cast_expression "(size_t)ppiVar16[0xfffffffe]" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (subscript_expression "ppiVar16[0xfffffffe]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffe") (] "]"))) () ")")))) (; ";")) (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppuVar19 = ppuVar19 + 1;" (assignment_expression "ppuVar19 = ppuVar19 + 1" (identifier "ppuVar19") (= "=") (binary_expression "ppuVar19 + 1" (identifier "ppuVar19") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;" (if "if") (parenthesized_expression "((undefined **)ppiVar16[2] == ppuVar19)" (( "(") (binary_expression "(undefined **)ppiVar16[2] == ppuVar19" (cast_expression "(undefined **)ppiVar16[2]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "ppiVar16[2]" (identifier "ppiVar16") ([ "[") (number_literal "2") (] "]"))) (== "==") (identifier "ppuVar19")) () ")")) (goto_statement "goto LAB_000af11c;" (goto "goto") (statement_identifier "LAB_000af11c") (; ";"))) (expression_statement "pcVar21 = *ppuVar19;" (assignment_expression "pcVar21 = *ppuVar19" (identifier "pcVar21") (= "=") (pointer_expression "*ppuVar19" (* "*") (identifier "ppuVar19"))) (; ";")) (expression_statement "ppiVar16[0xfffffffc] = (int *)pcVar21;" (assignment_expression "ppiVar16[0xfffffffc] = (int *)pcVar21" (subscript_expression "ppiVar16[0xfffffffc]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffc") (] "]")) (= "=") (cast_expression "(int *)pcVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar21"))) (; ";")) (expression_statement "ppiVar16[0xfffffffb] = (int *)0xaf2ac;" (assignment_expression "ppiVar16[0xfffffffb] = (int *)0xaf2ac" (subscript_expression "ppiVar16[0xfffffffb]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffb") (] "]")) (= "=") (cast_expression "(int *)0xaf2ac" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaf2ac"))) (; ";")) (expression_statement "sVar10 = strlen((char *)ppiVar16[0xfffffffc]);" (assignment_expression "sVar10 = strlen((char *)ppiVar16[0xfffffffc])" (identifier "sVar10") (= "=") (call_expression "strlen((char *)ppiVar16[0xfffffffc])" (identifier "strlen") (argument_list "((char *)ppiVar16[0xfffffffc])" (( "(") (cast_expression "(char *)ppiVar16[0xfffffffc]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0xfffffffc]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffc") (] "]"))) () ")")))) (; ";")) (} "}"))) (expression_statement "piVar14 = ppiVar16[3];" (assignment_expression "piVar14 = ppiVar16[3]" (identifier "piVar14") (= "=") (subscript_expression "ppiVar16[3]" (identifier "ppiVar16") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;" (assignment_expression "*(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8" (pointer_expression "*(byte *)(iVar8 + 0x91)" (* "*") (cast_expression "(byte *)(iVar8 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x91)" (( "(") (binary_expression "iVar8 + 0x91" (identifier "iVar8") (+ "+") (number_literal "0x91")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar8 + 0x91) | 8" (pointer_expression "*(byte *)(iVar8 + 0x91)" (* "*") (cast_expression "(byte *)(iVar8 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x91)" (( "(") (binary_expression "iVar8 + 0x91" (identifier "iVar8") (+ "+") (number_literal "0x91")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (expression_statement "bVar11 = *(byte *)(ppiVar16[1] + 0x2b);" (assignment_expression "bVar11 = *(byte *)(ppiVar16[1] + 0x2b)" (identifier "bVar11") (= "=") (pointer_expression "*(byte *)(ppiVar16[1] + 0x2b)" (* "*") (cast_expression "(byte *)(ppiVar16[1] + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar16[1] + 0x2b)" (( "(") (binary_expression "ppiVar16[1] + 0x2b" (subscript_expression "ppiVar16[1]" (identifier "ppiVar16") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (expression_statement "uVar9 = (uint)bVar11;" (assignment_expression "uVar9 = (uint)bVar11" (identifier "uVar9") (= "=") (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11"))) (; ";")) (goto_statement "goto LAB_000af249;" (goto "goto") (statement_identifier "LAB_000af249") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    iVar12 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar25 = false;\n    bVar22 = (!bVar23 && !bVar22) == bVar23;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    bVar23 = false;\n    bVar22 = (!bVar25 && !bVar22) == bVar25;\n    if (bVar22) goto LAB_000aee98;\n    iVar12 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar20 = (byte *)ppiVar16[0x1b];\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);\n    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;\n    bVar22 = false;\n    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';\n    if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }\nLAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;\nLAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);\nLAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" (identifier "iVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar18 = (byte *)".dtors.";" (assignment_expression "pbVar18 = (byte *)".dtors."" (identifier "pbVar18") (= "=") (cast_expression "(byte *)".dtors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors."" (" """) (string_content ".dtors.") (" """)))) (; ";")) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" (identifier "pbVar20") (= "=") (cast_expression "(byte *)ppiVar16[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0x1b]" (identifier "ppiVar16") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (do_statement "do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);" (do "do") (compound_statement "{\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" (identifier "bVar23") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" (identifier "bVar22") (= "=") (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" (( "(") (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (if_statement "if (bVar22) goto LAB_000aee98;" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (goto_statement "goto LAB_000aee98;" (goto "goto") (statement_identifier "LAB_000aee98") (; ";"))) (expression_statement "iVar12 = 0xc;" (assignment_expression "iVar12 = 0xc" (identifier "iVar12") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar18 = (byte *)".init_array.";" (assignment_expression "pbVar18 = (byte *)".init_array."" (identifier "pbVar18") (= "=") (cast_expression "(byte *)".init_array."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".init_array."" (" """) (string_content ".init_array.") (" """)))) (; ";")) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" (identifier "pbVar20") (= "=") (cast_expression "(byte *)ppiVar16[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0x1b]" (identifier "ppiVar16") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (do_statement "do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);" (do "do") (compound_statement "{\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar25 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar18 < *pbVar20;" (assignment_expression "bVar25 = *pbVar18 < *pbVar20" (identifier "bVar25") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar25 && !bVar22) == bVar25;" (assignment_expression "bVar22 = (!bVar25 && !bVar22) == bVar25" (identifier "bVar22") (= "=") (binary_expression "(!bVar25 && !bVar22) == bVar25" (parenthesized_expression "(!bVar25 && !bVar22)" (( "(") (binary_expression "!bVar25 && !bVar22" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if (bVar22) goto LAB_000aee98;" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (goto_statement "goto LAB_000aee98;" (goto "goto") (statement_identifier "LAB_000aee98") (; ";"))) (expression_statement "iVar12 = 0xc;" (assignment_expression "iVar12 = 0xc" (identifier "iVar12") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar18 = (byte *)".fini_array.";" (assignment_expression "pbVar18 = (byte *)".fini_array."" (identifier "pbVar18") (= "=") (cast_expression "(byte *)".fini_array."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".fini_array."" (" """) (string_content ".fini_array.") (" """)))) (; ";")) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" (identifier "pbVar20") (= "=") (cast_expression "(byte *)ppiVar16[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0x1b]" (identifier "ppiVar16") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (do_statement "do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    } while (bVar22);" (do "do") (compound_statement "{\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar23 = *pbVar18 < *pbVar20;\n      bVar22 = *pbVar18 == *pbVar20;\n      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" (identifier "bVar23") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (if_statement "if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;" (if "if") (parenthesized_expression "((!bVar23 && !bVar22) == bVar23)" (( "(") (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" (( "(") (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar23")) () ")")) (goto_statement "goto LAB_000aee98;" (goto "goto") (statement_identifier "LAB_000aee98") (; ";"))) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" (identifier "bVar22") (= "=") (false "false")) (; ";")) (expression_statement "bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';" (assignment_expression "bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0'" (identifier "bVar25") (= "=") (binary_expression "*(char *)((int)piVar14 + 0xad5) == '\0'" (pointer_expression "*(char *)((int)piVar14 + 0xad5)" (* "*") (cast_expression "(char *)((int)piVar14 + 0xad5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + 0xad5)" (( "(") (binary_expression "(int)piVar14 + 0xad5" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "0xad5")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!bVar25) {\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (compound_statement "{\n      iVar12 = 7;\n      pbVar18 = (byte *)ppiVar16[0x1b];\n      pbVar20 = (byte *)".ctors";\n      do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);\n      bVar23 = false;\n      bVar22 = (!bVar22 && !bVar25) == bVar22;\n      if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }\n      goto LAB_000aee98;\n    }" ({ "{") (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" (identifier "iVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar18 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar16[0x1b]" (identifier "pbVar18") (= "=") (cast_expression "(byte *)ppiVar16[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0x1b]" (identifier "ppiVar16") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (expression_statement "pbVar20 = (byte *)".ctors";" (assignment_expression "pbVar20 = (byte *)".ctors"" (identifier "pbVar20") (= "=") (cast_expression "(byte *)".ctors"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors"" (" """) (string_content ".ctors") (" """)))) (; ";")) (do_statement "do {\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      } while (bVar25);" (do "do") (compound_statement "{\n        if (iVar12 == 0) break;\n        iVar12 = iVar12 + -1;\n        bVar22 = *pbVar18 < *pbVar20;\n        bVar25 = *pbVar18 == *pbVar20;\n        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar25 = *pbVar18 == *pbVar20;" (assignment_expression "bVar25 = *pbVar18 == *pbVar20" (identifier "bVar25") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar22 && !bVar25) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar25) == bVar22" (identifier "bVar22") (= "=") (binary_expression "(!bVar22 && !bVar25) == bVar22" (parenthesized_expression "(!bVar22 && !bVar25)" (( "(") (binary_expression "!bVar22 && !bVar25" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar22"))) (; ";")) (if_statement "if (!bVar22) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".dtors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);\n        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;\n      }" ({ "{") (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" (identifier "iVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar18 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar16[0x1b]" (identifier "pbVar18") (= "=") (cast_expression "(byte *)ppiVar16[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0x1b]" (identifier "ppiVar16") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (expression_statement "pbVar20 = (byte *)".dtors";" (assignment_expression "pbVar20 = (byte *)".dtors"" (identifier "pbVar20") (= "=") (cast_expression "(byte *)".dtors"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors"" (" """) (string_content ".dtors") (" """)))) (; ";")) (do_statement "do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar22);" (do "do") (compound_statement "{\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar23 = *pbVar18 < *pbVar20;\n          bVar22 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" (identifier "bVar23") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (if_statement "if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;" (if "if") (parenthesized_expression "((!bVar23 && !bVar22) != bVar23)" (( "(") (binary_expression "(!bVar23 && !bVar22) != bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" (( "(") (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (!= "!=") (identifier "bVar23")) () ")")) (goto_statement "goto LAB_000af100;" (goto "goto") (statement_identifier "LAB_000af100") (; ";"))) (} "}"))) (goto_statement "goto LAB_000aee98;" (goto "goto") (statement_identifier "LAB_000aee98") (; ";")) (} "}"))) (labeled_statement "LAB_000af100:\n    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;" (statement_identifier "LAB_000af100") (: ":") (if_statement "if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;" (if "if") (parenthesized_expression "(*(char *)((int)piVar14 + 0x3ced) != '\0')" (( "(") (binary_expression "*(char *)((int)piVar14 + 0x3ced) != '\0'" (pointer_expression "*(char *)((int)piVar14 + 0x3ced)" (* "*") (cast_expression "(char *)((int)piVar14 + 0x3ced)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + 0x3ced)" (( "(") (binary_expression "(int)piVar14 + 0x3ced" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "0x3ced")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000aeebd;" (goto "goto") (statement_identifier "LAB_000aeebd") (; ";")))) (labeled_statement "LAB_000af10d:\n    cVar6 = *(char *)((int)piVar14 + 0x318d);" (statement_identifier "LAB_000af10d") (: ":") (expression_statement "cVar6 = *(char *)((int)piVar14 + 0x318d);" (assignment_expression "cVar6 = *(char *)((int)piVar14 + 0x318d)" (identifier "cVar6") (= "=") (pointer_expression "*(char *)((int)piVar14 + 0x318d)" (* "*") (cast_expression "(char *)((int)piVar14 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + 0x318d)" (( "(") (binary_expression "(int)piVar14 + 0x318d" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "0x318d")) () ")"))))) (; ";"))) (labeled_statement "LAB_000af114:\n    if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }" (statement_identifier "LAB_000af114") (: ":") (if_statement "if (cVar6 == '\0') {\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }" (if "if") (parenthesized_expression "(cVar6 == '\0')" (( "(") (binary_expression "cVar6 == '\0'" (identifier "cVar6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);\n      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;\n      bVar22 = uVar9 < 4;\n      bVar25 = uVar9 == 4;\n      if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }\n    }" ({ "{") (labeled_statement "LAB_000af11c:\n      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);" (statement_identifier "LAB_000af11c") (: ":") (expression_statement "uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);" (assignment_expression "uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(*ppiVar16[0x1c] + 0x14)" (* "*") (cast_expression "(uint *)(*ppiVar16[0x1c] + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*ppiVar16[0x1c] + 0x14)" (( "(") (binary_expression "*ppiVar16[0x1c] + 0x14" (pointer_expression "*ppiVar16[0x1c]" (* "*") (subscript_expression "ppiVar16[0x1c]" (identifier "ppiVar16") ([ "[") (number_literal "0x1c") (] "]"))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";"))) (expression_statement "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;" (assignment_expression "uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (identifier "uVar9") (= "=") (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8" (binary_expression "uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8" (binary_expression "uVar9 >> 0x18" (identifier "uVar9") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar9 & 0xff0000) >> 8" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 8" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar9 << 0x18" (identifier "uVar9") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "bVar22 = uVar9 < 4;" (assignment_expression "bVar22 = uVar9 < 4" (identifier "bVar22") (= "=") (binary_expression "uVar9 < 4" (identifier "uVar9") (< "<") (number_literal "4"))) (; ";")) (expression_statement "bVar25 = uVar9 == 4;" (assignment_expression "bVar25 = uVar9 == 4" (identifier "bVar25") (= "=") (binary_expression "uVar9 == 4" (identifier "uVar9") (== "==") (number_literal "4"))) (; ";")) (if_statement "if (4 < uVar9) {\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }" (if "if") (parenthesized_expression "(4 < uVar9)" (( "(") (binary_expression "4 < uVar9" (number_literal "4") (< "<") (identifier "uVar9")) () ")")) (compound_statement "{\n        iVar12 = 7;\n        pbVar18 = (byte *)ppiVar16[0x1b];\n        pbVar20 = (byte *)".ctors";\n        do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);\n        bVar23 = false;\n        bVar22 = (!bVar22 && !bVar25) == bVar22;\n        if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }\n        ppiVar16[10] = ppiVar16[0x19];\n        ppiVar16[0xb] = ppiVar16[0x1a];\n        ppiVar16[9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffffd] = (int *)0x1;\n        ppiVar16[0xfffffffc] = (int *)0x0;\n        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);\n        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);\n        ppiVar16[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);\n        ppiVar16[0xfffffff7] = (int *)0xaf1b3;\n        FUN_000ae400();\n        ppiVar15 = ppiVar16 + 0x17;\n        ppiVar16 = ppiVar16 + 0xffffffff;\n        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);\n        goto LAB_000aeee2;\n      }" ({ "{") (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" (identifier "iVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar18 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar16[0x1b]" (identifier "pbVar18") (= "=") (cast_expression "(byte *)ppiVar16[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0x1b]" (identifier "ppiVar16") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (expression_statement "pbVar20 = (byte *)".ctors";" (assignment_expression "pbVar20 = (byte *)".ctors"" (identifier "pbVar20") (= "=") (cast_expression "(byte *)".ctors"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors"" (" """) (string_content ".ctors") (" """)))) (; ";")) (do_statement "do {\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        } while (bVar25);" (do "do") (compound_statement "{\n          if (iVar12 == 0) break;\n          iVar12 = iVar12 + -1;\n          bVar22 = *pbVar18 < *pbVar20;\n          bVar25 = *pbVar18 == *pbVar20;\n          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar22 = *pbVar18 < *pbVar20;" (assignment_expression "bVar22 = *pbVar18 < *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar25 = *pbVar18 == *pbVar20;" (assignment_expression "bVar25 = *pbVar18 == *pbVar20" (identifier "bVar25") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar22 && !bVar25) == bVar22;" (assignment_expression "bVar22 = (!bVar22 && !bVar25) == bVar22" (identifier "bVar22") (= "=") (binary_expression "(!bVar22 && !bVar25) == bVar22" (parenthesized_expression "(!bVar22 && !bVar25)" (( "(") (binary_expression "!bVar22 && !bVar25" (unary_expression "!bVar22" (! "!") (identifier "bVar22")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar22"))) (; ";")) (if_statement "if (bVar22) {\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }\n        else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (compound_statement "{\nLAB_000af164:\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".init_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) goto LAB_000af1d0;\n        }" ({ "{") (labeled_statement "LAB_000af164:\n          bVar25 = false;" (statement_identifier "LAB_000af164") (: ":") (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";"))) (expression_statement "iVar12 = 0xc;" (assignment_expression "iVar12 = 0xc" (identifier "iVar12") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar18 = *(byte **)(iVar8 + 0x20);" (assignment_expression "pbVar18 = *(byte **)(iVar8 + 0x20)" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)(iVar8 + 0x20)" (* "*") (cast_expression "(byte **)(iVar8 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x20)" (( "(") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "pbVar20 = (byte *)".init_array";" (assignment_expression "pbVar20 = (byte *)".init_array"" (identifier "pbVar20") (= "=") (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 (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);" (do "do") (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar18 < *pbVar20;" (assignment_expression "bVar25 = *pbVar18 < *pbVar20" (identifier "bVar25") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "bVar22 = (!bVar25 && !bVar22) == bVar25;" (assignment_expression "bVar22 = (!bVar25 && !bVar22) == bVar25" (identifier "bVar22") (= "=") (binary_expression "(!bVar25 && !bVar22) == bVar25" (parenthesized_expression "(!bVar25 && !bVar22)" (( "(") (binary_expression "!bVar25 && !bVar22" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if (!bVar22) goto LAB_000af1d0;" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (goto_statement "goto LAB_000af1d0;" (goto "goto") (statement_identifier "LAB_000af1d0") (; ";"))) (} "}")) (else_clause "else {\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }" (else "else") (compound_statement "{\n          iVar12 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar20 = (byte *)ppiVar16[0x1b];\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar22 = (!bVar23 && !bVar22) == bVar23;\n          if (bVar22) goto LAB_000af164;\nLAB_000af1d0:\n          bVar25 = false;\n          iVar12 = 7;\n          pbVar18 = (byte *)ppiVar16[0x1b];\n          pbVar20 = (byte *)".dtors";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          bVar23 = false;\n          bVar22 = (!bVar25 && !bVar22) == bVar25;\n          if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }\n          bVar25 = false;\n          iVar12 = 0xc;\n          pbVar18 = *(byte **)(iVar8 + 0x20);\n          pbVar20 = (byte *)".fini_array";\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);\n          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;\n        }" ({ "{") (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" (identifier "iVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar18 = (byte *)".ctors.";" (assignment_expression "pbVar18 = (byte *)".ctors."" (identifier "pbVar18") (= "=") (cast_expression "(byte *)".ctors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors."" (" """) (string_content ".ctors.") (" """)))) (; ";")) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" (identifier "pbVar20") (= "=") (cast_expression "(byte *)ppiVar16[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0x1b]" (identifier "ppiVar16") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);" (do "do") (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar23 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" (identifier "bVar23") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" (identifier "bVar22") (= "=") (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" (( "(") (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (if_statement "if (bVar22) goto LAB_000af164;" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (goto_statement "goto LAB_000af164;" (goto "goto") (statement_identifier "LAB_000af164") (; ";"))) (labeled_statement "LAB_000af1d0:\n          bVar25 = false;" (statement_identifier "LAB_000af1d0") (: ":") (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";"))) (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" (identifier "iVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar18 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar16[0x1b]" (identifier "pbVar18") (= "=") (cast_expression "(byte *)ppiVar16[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0x1b]" (identifier "ppiVar16") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (expression_statement "pbVar20 = (byte *)".dtors";" (assignment_expression "pbVar20 = (byte *)".dtors"" (identifier "pbVar20") (= "=") (cast_expression "(byte *)".dtors"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors"" (" """) (string_content ".dtors") (" """)))) (; ";")) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);" (do "do") (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar18 < *pbVar20;" (assignment_expression "bVar25 = *pbVar18 < *pbVar20" (identifier "bVar25") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!bVar25 && !bVar22) == bVar25;" (assignment_expression "bVar22 = (!bVar25 && !bVar22) == bVar25" (identifier "bVar22") (= "=") (binary_expression "(!bVar25 && !bVar22) == bVar25" (parenthesized_expression "(!bVar25 && !bVar22)" (( "(") (binary_expression "!bVar25 && !bVar22" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar25"))) (; ";")) (if_statement "if (!bVar22) {\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (compound_statement "{\n            iVar12 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar20 = (byte *)ppiVar16[0x1b];\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);\n            bVar22 = (!bVar23 && !bVar22) == bVar23;\n            if (!bVar22) goto LAB_000aeee0;\n          }" ({ "{") (expression_statement "iVar12 = 7;" (assignment_expression "iVar12 = 7" (identifier "iVar12") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar18 = (byte *)".dtors.";" (assignment_expression "pbVar18 = (byte *)".dtors."" (identifier "pbVar18") (= "=") (cast_expression "(byte *)".dtors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors."" (" """) (string_content ".dtors.") (" """)))) (; ";")) (expression_statement "pbVar20 = (byte *)ppiVar16[0x1b];" (assignment_expression "pbVar20 = (byte *)ppiVar16[0x1b]" (identifier "pbVar20") (= "=") (cast_expression "(byte *)ppiVar16[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar16[0x1b]" (identifier "ppiVar16") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (do_statement "do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar22);" (do "do") (compound_statement "{\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar23 = *pbVar18 < *pbVar20;\n              bVar22 = *pbVar18 == *pbVar20;\n              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar18 < *pbVar20;" (assignment_expression "bVar23 = *pbVar18 < *pbVar20" (identifier "bVar23") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (expression_statement "bVar22 = (!bVar23 && !bVar22) == bVar23;" (assignment_expression "bVar22 = (!bVar23 && !bVar22) == bVar23" (identifier "bVar22") (= "=") (binary_expression "(!bVar23 && !bVar22) == bVar23" (parenthesized_expression "(!bVar23 && !bVar22)" (( "(") (binary_expression "!bVar23 && !bVar22" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (if_statement "if (!bVar22) goto LAB_000aeee0;" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (goto_statement "goto LAB_000aeee0;" (goto "goto") (statement_identifier "LAB_000aeee0") (; ";"))) (} "}"))) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "iVar12 = 0xc;" (assignment_expression "iVar12 = 0xc" (identifier "iVar12") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar18 = *(byte **)(iVar8 + 0x20);" (assignment_expression "pbVar18 = *(byte **)(iVar8 + 0x20)" (identifier "pbVar18") (= "=") (pointer_expression "*(byte **)(iVar8 + 0x20)" (* "*") (cast_expression "(byte **)(iVar8 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x20)" (( "(") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "pbVar20 = (byte *)".fini_array";" (assignment_expression "pbVar20 = (byte *)".fini_array"" (identifier "pbVar20") (= "=") (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 (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          } while (bVar22);" (do "do") (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar18 < *pbVar20;\n            bVar22 = *pbVar18 == *pbVar20;\n            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;\n            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar18 < *pbVar20;" (assignment_expression "bVar25 = *pbVar18 < *pbVar20" (identifier "bVar25") (= "=") (binary_expression "*pbVar18 < *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar22 = *pbVar18 == *pbVar20;" (assignment_expression "bVar22 = *pbVar18 == *pbVar20" (identifier "bVar22") (= "=") (binary_expression "*pbVar18 == *pbVar20" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar27 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;" (if "if") (parenthesized_expression "((!bVar25 && !bVar22) != bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar22) != bVar25" (parenthesized_expression "(!bVar25 && !bVar22)" (( "(") (binary_expression "!bVar25 && !bVar22" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (!= "!=") (identifier "bVar25")) () ")")) (goto_statement "goto LAB_000aeee0;" (goto "goto") (statement_identifier "LAB_000aeee0") (; ";"))) (} "}")))) (expression_statement "ppiVar16[10] = ppiVar16[0x19];" (assignment_expression "ppiVar16[10] = ppiVar16[0x19]" (subscript_expression "ppiVar16[10]" (identifier "ppiVar16") ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "ppiVar16[0x19]" (identifier "ppiVar16") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "ppiVar16[0xb] = ppiVar16[0x1a];" (assignment_expression "ppiVar16[0xb] = ppiVar16[0x1a]" (subscript_expression "ppiVar16[0xb]" (identifier "ppiVar16") ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "ppiVar16[0x1a]" (identifier "ppiVar16") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "ppiVar16[9] = &DAT_0038f4c4;" (assignment_expression "ppiVar16[9] = &DAT_0038f4c4" (subscript_expression "ppiVar16[9]" (identifier "ppiVar16") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "&DAT_0038f4c4" (& "&") (identifier "DAT_0038f4c4"))) (; ";")) (expression_statement "ppiVar16[0xfffffffd] = (int *)0x1;" (assignment_expression "ppiVar16[0xfffffffd] = (int *)0x1" (subscript_expression "ppiVar16[0xfffffffd]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffd") (] "]")) (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppiVar16[0xfffffffc] = (int *)0x0;" (assignment_expression "ppiVar16[0xfffffffc] = (int *)0x0" (subscript_expression "ppiVar16[0xfffffffc]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffc") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);" (assignment_expression "ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9)" (subscript_expression "ppiVar16[0xfffffffb]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffb") (] "]")) (= "=") (cast_expression "(int *)(ppiVar16 + 9)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar16 + 9)" (( "(") (binary_expression "ppiVar16 + 9" (identifier "ppiVar16") (+ "+") (number_literal "9")) () ")")))) (; ";")) (expression_statement "ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);" (assignment_expression "ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10)" (subscript_expression "ppiVar16[0xfffffffa]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffffa") (] "]")) (= "=") (cast_expression "(int *)(ppiVar16 + 10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar16 + 10)" (( "(") (binary_expression "ppiVar16 + 10" (identifier "ppiVar16") (+ "+") (number_literal "10")) () ")")))) (; ";")) (expression_statement "ppiVar16[0xfffffff9] = &DAT_0038f4c4;" (assignment_expression "ppiVar16[0xfffffff9] = &DAT_0038f4c4" (subscript_expression "ppiVar16[0xfffffff9]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffff9") (] "]")) (= "=") (pointer_expression "&DAT_0038f4c4" (& "&") (identifier "DAT_0038f4c4"))) (; ";")) (expression_statement "ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);" (assignment_expression "ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4)" (subscript_expression "ppiVar16[0xfffffff8]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffff8") (] "]")) (= "=") (cast_expression "(int *)(ppiVar16 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar16 + 4)" (( "(") (binary_expression "ppiVar16 + 4" (identifier "ppiVar16") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "ppiVar16[0xfffffff7] = (int *)0xaf1b3;" (assignment_expression "ppiVar16[0xfffffff7] = (int *)0xaf1b3" (subscript_expression "ppiVar16[0xfffffff7]" (identifier "ppiVar16") ([ "[") (number_literal "0xfffffff7") (] "]")) (= "=") (cast_expression "(int *)0xaf1b3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaf1b3"))) (; ";")) (expression_statement "FUN_000ae400();" (call_expression "FUN_000ae400()" (identifier "FUN_000ae400") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppiVar15 = ppiVar16 + 0x17;" (assignment_expression "ppiVar15 = ppiVar16 + 0x17" (identifier "ppiVar15") (= "=") (binary_expression "ppiVar16 + 0x17" (identifier "ppiVar16") (+ "+") (number_literal "0x17"))) (; ";")) (expression_statement "ppiVar16 = ppiVar16 + 0xffffffff;" (assignment_expression "ppiVar16 = ppiVar16 + 0xffffffff" (identifier "ppiVar16") (= "=") (binary_expression "ppiVar16 + 0xffffffff" (identifier "ppiVar16") (+ "+") (number_literal "0xffffffff"))) (; ";")) (expression_statement "uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);" (assignment_expression "uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac)" (identifier "uVar9") (= "=") (binary_expression "(uint)*(byte *)((*ppiVar15)[1] + 0xac)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((*ppiVar15)[1] + 0xac)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((*ppiVar15)[1] + 0xac)" (( "(") (binary_expression "(*ppiVar15)[1] + 0xac" (subscript_expression "(*ppiVar15)[1]" (parenthesized_expression "(*ppiVar15)" (( "(") (pointer_expression "*ppiVar15" (* "*") (identifier "ppiVar15")) () ")")) ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xac")) () ")"))))) (; ";")) (goto_statement "goto LAB_000aeee2;" (goto "goto") (statement_identifier "LAB_000aeee2") (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_000aeee0:\n  uVar9 = 0;" (statement_identifier "LAB_000aeee0") (: ":") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_000aeee2:\n  uVar1 = *(uint *)(iVar8 + 0x54);" (statement_identifier "LAB_000aeee2") (: ":") (expression_statement "uVar1 = *(uint *)(iVar8 + 0x54);" (assignment_expression "uVar1 = *(uint *)(iVar8 + 0x54)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(iVar8 + 0x54)" (* "*") (cast_expression "(uint *)(iVar8 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x54)" (( "(") (binary_expression "iVar8 + 0x54" (identifier "iVar8") (+ "+") (number_literal "0x54")) () ")"))))) (; ";"))) (expression_statement "*(uint *)((int)ppiVar16 + -4) = uVar9;" (assignment_expression "*(uint *)((int)ppiVar16 + -4) = uVar9" (pointer_expression "*(uint *)((int)ppiVar16 + -4)" (* "*") (cast_expression "(uint *)((int)ppiVar16 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -4)" (( "(") (binary_expression "(int)ppiVar16 + -4" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -8)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -8)" (( "(") (binary_expression "(int)ppiVar16 + -8" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x78)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + 0x78)" (( "(") (binary_expression "(int)ppiVar16 + 0x78" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -0xc)" (( "(") (binary_expression "(int)ppiVar16 + -0xc" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x70)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + 0x70)" (( "(") (binary_expression "(int)ppiVar16 + 0x70" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -0x10)" (( "(") (binary_expression "(int)ppiVar16 + -0x10" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x6c)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + 0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + 0x6c)" (( "(") (binary_expression "(int)ppiVar16 + 0x6c" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -0x14)" (( "(") (binary_expression "(int)ppiVar16 + -0x14" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x68)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + 0x68)" (( "(") (binary_expression "(int)ppiVar16 + 0x68" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x18)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -0x18)" (( "(") (binary_expression "(int)ppiVar16 + -0x18" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar16 + 100)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + 100)" (( "(") (binary_expression "(int)ppiVar16 + 100" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "100")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x1c)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -0x1c)" (( "(") (binary_expression "(int)ppiVar16 + -0x1c" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x60)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + 0x60)" (( "(") (binary_expression "(int)ppiVar16 + 0x60" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)ppiVar16 + -0x20) = iVar8;" (assignment_expression "*(int *)((int)ppiVar16 + -0x20) = iVar8" (pointer_expression "*(int *)((int)ppiVar16 + -0x20)" (* "*") (cast_expression "(int *)((int)ppiVar16 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -0x20)" (( "(") (binary_expression "(int)ppiVar16 + -0x20" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -0x24)" (( "(") (binary_expression "(int)ppiVar16 + -0x24" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0xaef04")) (; ";")) (expression_statement "uVar28 = FUN_00126020();" (assignment_expression "uVar28 = FUN_00126020()" (identifier "uVar28") (= "=") (call_expression "FUN_00126020()" (identifier "FUN_00126020") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "**(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;" (assignment_expression "**(undefined8 **)((int)ppiVar16 + 0x80) = uVar28" (pointer_expression "**(undefined8 **)((int)ppiVar16 + 0x80)" (* "*") (pointer_expression "*(undefined8 **)((int)ppiVar16 + 0x80)" (* "*") (cast_expression "(undefined8 **)((int)ppiVar16 + 0x80)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar16 + 0x80)" (( "(") (binary_expression "(int)ppiVar16 + 0x80" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "0x80")) () ")"))))) (= "=") (identifier "uVar28")) (; ";")) (if_statement "if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }" (if "if") (parenthesized_expression "(((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0))" (( "(") (binary_expression "((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)" (parenthesized_expression "((uVar1 & 2) != 0)" (( "(") (binary_expression "(uVar1 & 2) != 0" (parenthesized_expression "(uVar1 & 2)" (( "(") (binary_expression "uVar1 & 2" (identifier "uVar1") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)" (( "(") (binary_expression "((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0" (parenthesized_expression "((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5)" (( "(") (binary_expression "(uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5" (parenthesized_expression "(uVar1 ^ *(uint *)(iVar8 + 0x54))" (( "(") (binary_expression "uVar1 ^ *(uint *)(iVar8 + 0x54)" (identifier "uVar1") (^ "^") (pointer_expression "*(uint *)(iVar8 + 0x54)" (* "*") (cast_expression "(uint *)(iVar8 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x54)" (( "(") (binary_expression "iVar8 + 0x54" (identifier "iVar8") (+ "+") (number_literal "0x54")) () ")"))))) () ")")) (& "&") (number_literal "5")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    *(undefined4 *)((int)ppiVar16 + -8) = 0;\n    *(int *)((int)ppiVar16 + -0xc) = iVar8;\n    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);\n    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;\n    uVar7 = FUN_00097200();\n    *(undefined4 *)(iVar8 + 0x5c) = uVar7;\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)ppiVar16 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -8) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -8)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -8)" (( "(") (binary_expression "(int)ppiVar16 + -8" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)((int)ppiVar16 + -0xc) = iVar8;" (assignment_expression "*(int *)((int)ppiVar16 + -0xc) = iVar8" (pointer_expression "*(int *)((int)ppiVar16 + -0xc)" (* "*") (cast_expression "(int *)((int)ppiVar16 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -0xc)" (( "(") (binary_expression "(int)ppiVar16 + -0xc" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60)" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -0x10)" (( "(") (binary_expression "(int)ppiVar16 + -0x10" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar16 + 0x60)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + 0x60)" (( "(") (binary_expression "(int)ppiVar16 + 0x60" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;" (assignment_expression "*(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32" (pointer_expression "*(undefined4 *)((int)ppiVar16 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar16 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + -0x14)" (( "(") (binary_expression "(int)ppiVar16 + -0x14" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xaef32")) (; ";")) (expression_statement "uVar7 = FUN_00097200();" (assignment_expression "uVar7 = FUN_00097200()" (identifier "uVar7") (= "=") (call_expression "FUN_00097200()" (identifier "FUN_00097200") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x5c) = uVar7;" (assignment_expression "*(undefined4 *)(iVar8 + 0x5c) = uVar7" (pointer_expression "*(undefined4 *)(iVar8 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x5c)" (( "(") (binary_expression "iVar8 + 0x5c" (identifier "iVar8") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1" (pointer_expression "*(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4)" (* "*") (cast_expression "(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)ppiVar16 + 0x60) + 0x1c4)" (( "(") (binary_expression "*(int *)((int)ppiVar16 + 0x60) + 0x1c4" (pointer_expression "*(int *)((int)ppiVar16 + 0x60)" (* "*") (cast_expression "(int *)((int)ppiVar16 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar16 + 0x60)" (( "(") (binary_expression "(int)ppiVar16 + 0x60" (cast_expression "(int)ppiVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar16")) (+ "+") (number_literal "0x60")) () ")")))) (+ "+") (number_literal "0x1c4")) () ")")))) (= "=") (number_literal "1")) (; ";")) (return_statement "return iVar8;" (return "return") (identifier "iVar8") (; ";")) (} "}")))

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

type_3 * __thiscall
gold::type_12::layout<32,var_2>
          (type_12 *this,var_41<32,var_2> *object,type_2 shndx,var_11 *name,
          var_42<32,var_2> *shdr,type_2 sh_type,type_2 reloc_shndx,type_2 param_7,type_11 *off)

{
  int var_23;
  type_1 *puVar2;
  type_1 uVar3;
  type_1 uVar4;
  type_2 var_9;
  type_2 var_14;
  type_2 var_25;
  bool var_32;
  char var_40;
  char *pcVar10;
  type_3 *var_22;
  type_4 *var_3;
  type_5 OVar13;
  type_2 var_8;
  size_t sVar15;
  type_6 var_27;
  int var_4;
  type_7 **ppPVar18;
  type_4 *var_28;
  type_7 ***pppPVar20;
  type_7 ***pppPVar21;
  type_6 *var_30;
  type_8 *var_5;
  type_9 *puVar24;
  type_6 *var_31;
  type_10 _Var26;
  bool var_38;
  type_9 uVar28;
  bool var_39;
  type_9 uVar30;
  type_6 bVar31;
  type_11 oVar32;
  type_12 *unaff_retaddr;
  type_7 **local_5c;
  type_7 **local_58;
  type_10 __node_gen;
  type_13 name_key;
  type_8 var_6 [28];
  type_1 uStack_14;
  
  bVar31 = 0;
  uStack_14 = 0xaec39;
  *(type_1 *)off = 0;
  *(type_1 *)((int)off + 4) = 0;
  var_32 = var_1<32,var_2>(this,object,name,shdr);
  pppPVar20 = &local_5c;
  if (!var_32) {
    return (type_3 *)0x0;
  }
  var_3 = parameters->options_;
  pppPVar21 = &local_5c;
  if (var_3 == (type_4 *)0x0) goto LAB_000af218;
  if ((var_3->relocatable_).value == false) {
LAB_000aeca9:
    ppPVar18 = &parameters;
    if ((var_3->text_unlikely_segment_).value != false) {
      uVar28 = &local_5c < (type_9 *)0x4;
      uVar30 = &stack0x00000000 == (type_9 *)0x60;
      local_58 = &parameters;
      (*(object->super_Sized_relobj<32,var_2>).super_Relobj.super_Object._vptr_Object[0x10])
                (&name_key,object,shndx);
      var_4 = 0xe;
      local_58 = (type_7 **)0x28a53f;
      var_5 = (type_8 *)".text.unlikely";
      _Var26 = __node_gen;
      do {
        if (var_4 == 0) break;
        var_4 = var_4 + -1;
        uVar28 = (type_6)*var_5 < (type_6)*_Var26._M_h;
        uVar30 = *var_5 == *_Var26._M_h;
        var_5 = var_5 + (type_2)bVar31 * -2 + 1;
        _Var26._M_h = _Var26._M_h + (type_2)bVar31 * -2 + 1;
      } while ((bool)uVar30);
      pppPVar20 = (type_7 ***)&stack0xffffffa0;
      if ((!(bool)uVar28 && !(bool)uVar30) == (bool)uVar28) {
        if (__node_gen._M_h != var_6) {
          var_7(__node_gen._M_h);
        }
        pppPVar20 = (type_7 ***)&stack0xffffffa0;
        var_8 = *(type_2 *)(*(int *)name + 8);
        var_9 = var_8 >> 0x18 | (var_8 & 0xff0000) >> 8;
        if ((*local_5c)->options_ == (type_4 *)0x0) goto LAB_000af2db;
        var_14 = var_9 & 0xfffff50f;
        if (((*local_5c)->options_->relocatable_).value != false) {
          var_14 = var_9 & 0xfffff58f;
        }
        pcVar10 = var_10<var_11>::var_12
                            (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);
        var_22 = var_13(unaff_retaddr,pcVar10,(type_13)__node_gen._M_h,(type_14)shdr,
                                     (ulonglong)(var_14 | (var_8 & 0xff00) << 8 | var_8 << 0x18),
                                     ORDER_INVALID,false);
        pppPVar20 = (type_7 ***)&stack0xffffffa0;
        var_22->field_0x92 = var_22->field_0x92 | 0x80;
        goto LAB_000aedb0;
      }
      ppPVar18 = local_5c;
      if (__node_gen._M_h != var_6) {
        var_7(__node_gen._M_h);
        pppPVar20 = (type_7 ***)&stack0xffffffa0;
        ppPVar18 = local_5c;
      }
    }
    *(type_7 ***)((int)pppPVar20 + 4) = ppPVar18;
    *(type_1 *)((int)pppPVar20 + 0x28) = *(type_1 *)((int)pppPVar20 + 100);
    *(type_1 *)((int)pppPVar20 + 0x2c) = *(type_1 *)((int)pppPVar20 + 0x68);
    *(type_13 **)((int)pppPVar20 + -8) = &name_key;
    *(int *)((int)pppPVar20 + -0xc) = *(int *)((int)pppPVar20 + 0x60) + 0x204;
    *(type_9 **)((int)pppPVar20 + -0x10) = (type_9 *)((int)pppPVar20 + 0x1c);
    *(type_1 *)((int)pppPVar20 + -0x14) = 0xaece7;
    std::
    _Rb_tree<std::var_18<var_19::type_15*,var_20>,_std::var_18<const_std::var_18<var_19::type_15*,var_20>,_gold::type_12::var_17*>,_std::_Select1st<std::var_18<const_std::var_18<var_19::type_15*,var_20>,_gold::type_12::var_17*>var_15>,_std::less<std::var_18<var_19::type_15*,var_20>var_15>,_std::allocator<std::var_18<const_std::var_18<var_19::type_15*,var_20>,_gold::type_12::var_17*>var_15>var_15>
    ::var_16(*(_Rb_tree<std::var_18<var_19::type_15*,var_20>,_std::var_18<const_std::var_18<var_19::type_15*,var_20>,_gold::type_12::var_17*>,_std::_Select1st<std::var_18<const_std::var_18<var_19::type_15*,var_20>,_gold::type_12::var_17*>var_15>,_std::less<std::var_18<var_19::type_15*,var_20>var_15>,_std::allocator<std::var_18<const_std::var_18<var_19::type_15*,var_20>,_gold::type_12::var_17*>var_15>var_15>
             **)((int)pppPVar20 + -0x10),
           *(var_18<var_19::type_15*,var_20> **)((int)pppPVar20 + -0xc));
    var_4 = *(int *)((int)pppPVar20 + 0x1c);
    var_8 = *(type_2 *)(**(int **)((int)pppPVar20 + 0x70) + 8);
    var_9 = var_8 >> 0x18 | (var_8 & 0xff0000) >> 8;
    var_14 = (var_8 & 0xff00) << 8;
    if (var_4 == *(int *)((int)pppPVar20 + 0x60) + 0x208) {
      *(type_1 *)((int)pppPVar20 + -8) = 1;
      *(type_1 *)((int)pppPVar20 + -0xc) = 0;
      *(type_1 *)((int)pppPVar20 + -0x10) = 0;
      *(type_1 *)((int)pppPVar20 + -0x14) = 0;
      *(type_1 *)((int)pppPVar20 + -0x18) = 1;
      *(type_1 *)((int)pppPVar20 + -0x1c) = 0;
      *(type_2 *)((int)pppPVar20 + -0x20) = var_9 | var_14 | var_8 << 0x18;
      *(type_1 *)((int)pppPVar20 + -0x24) = *(type_1 *)((int)pppPVar20 + 0x74);
      *(type_1 *)((int)pppPVar20 + -0x28) = *(type_1 *)((int)pppPVar20 + 0x6c);
      *(type_1 *)((int)pppPVar20 + -0x2c) = *(type_1 *)((int)pppPVar20 + 100);
      *(type_1 *)((int)pppPVar20 + -0x30) = *(type_1 *)((int)pppPVar20 + 0x60);
      *(type_1 *)((int)pppPVar20 + -0x34) = 0xaf062;
      var_22 = var_21
                          (*(type_12 **)((int)pppPVar20 + -0x30),*(type_15 **)((int)pppPVar20 + -0x2c)
                           ,*(char **)((int)pppPVar20 + -0x28),*(type_14 *)((int)pppPVar20 + -0x24)
                           ,*(type_16 *)((int)pppPVar20 + -0x20),*(bool *)((int)pppPVar20 + -0x18)
                           ,*(type_5 *)((int)pppPVar20 + -0x14),
                           *(bool *)((int)pppPVar20 + -0x10),*(bool *)((int)pppPVar20 + -0xc),
                           *(bool *)((int)pppPVar20 + -8));
      local_5c = *(type_7 ***)((int)pppPVar20 + 4);
      if (var_22 == (type_3 *)0x0) {
        return (type_3 *)0x0;
      }
    }
    else {
      var_23 = *(int *)(**(int **)((int)pppPVar20 + 4) + 8);
      if (var_23 == 0) {
LAB_000af2db:
                    /* WARNING: Subroutine does not return */
        pppPVar20[-1] = (type_7 **)layout<64,_false>;
        Target::var_24((type_17 *)*pppPVar20);
      }
      var_25 = var_9 & 0xfffff50f;
      if (*(char *)(var_23 + 0x318d) != '\0') {
        var_25 = var_9 & 0xfffff58f;
      }
      puVar2 = *(type_1 **)(var_4 + 0x18);
      *(int **)((int)pppPVar20 + 4) = *(int **)((int)pppPVar20 + 4);
      *(type_13 **)((int)pppPVar20 + -4) = &name_key;
      *(type_1 *)((int)pppPVar20 + -8) = 1;
      *(type_1 *)((int)pppPVar20 + -0xc) = *puVar2;
      *(int *)((int)pppPVar20 + -0x10) = *(int *)((int)pppPVar20 + 0x60) + 8;
      *(type_1 *)((int)pppPVar20 + -0x14) = 0xaed4e;
      pcVar10 = var_10<var_11>::var_12
                          (*(var_10<var_11> **)((int)pppPVar20 + -0x10),
                           *(char **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8),
                           *(type_13 **)((int)pppPVar20 + -4));
      *(type_1 *)((int)pppPVar20 + -4) = 0;
      *(type_1 *)((int)pppPVar20 + -8) = 0;
      *(type_1 *)((int)pppPVar20 + -0xc) = 0;
      *(type_2 *)((int)pppPVar20 + -0x10) = var_25 | var_14 | var_8 << 0x18;
      *(type_1 *)((int)pppPVar20 + -0x14) = *(type_1 *)((int)pppPVar20 + 0x74);
      *(type_1 *)((int)pppPVar20 + -0x18) = *(type_1 *)((int)pppPVar20 + 0x28);
      *(char **)((int)pppPVar20 + -0x1c) = pcVar10;
      *(type_1 *)((int)pppPVar20 + -0x20) = *(type_1 *)((int)pppPVar20 + 0x60);
      *(type_1 *)((int)pppPVar20 + -0x24) = 0xaed6c;
      var_22 = var_13(*(type_12 **)((int)pppPVar20 + -0x20),
                                   *(char **)((int)pppPVar20 + -0x1c),
                                   *(type_13 *)((int)pppPVar20 + -0x18),
                                   *(type_14 *)((int)pppPVar20 + -0x14),
                                   *(type_16 *)((int)pppPVar20 + -0x10),
                                   *(type_5 *)((int)pppPVar20 + -8),
                                   *(bool *)((int)pppPVar20 + -4));
      local_5c = *(type_7 ***)((int)pppPVar20 + 4);
      if (-1 < (char)var_22->field_0x92) {
        var_22->field_0x92 = var_22->field_0x92 | 0x80;
        var_4 = *(int *)(var_4 + 0x18);
        uVar3 = *(type_1 *)(var_4 + 8);
        *(type_1 *)&var_22->extra_segment_flags_ = *(type_1 *)(var_4 + 4);
        uVar4 = *(type_1 *)(var_4 + 0xc);
        *(type_1 *)((int)&var_22->extra_segment_flags_ + 4) = uVar3;
        uVar3 = *(type_1 *)(var_4 + 0x10);
        *(type_1 *)&var_22->segment_alignment_ = uVar4;
        *(type_1 *)((int)&var_22->segment_alignment_ + 4) = uVar3;
      }
    }
  }
  else {
    var_8 = shdr->p_->sh_flags;
    var_9 = (var_8 & 0xff0000) >> 8;
    if ((var_9 & 0x200) == 0) goto LAB_000aeca9;
    local_58 = &parameters;
    pcVar10 = var_10<var_11>::var_12(&this->namepool_,name,true,(type_13 *)0x0);
    var_22 = var_26(this,pcVar10,sh_type,
                                  (ulonglong)
                                  (var_8 >> 0x18 | var_9 & 0xfffff7ff | (var_8 & 0xff00) << 8 |
                                  var_8 << 0x18),ORDER_INVALID,false);
    pppPVar20 = &local_5c;
    local_5c = local_58;
  }
LAB_000aedb0:
  var_4 = *(int *)(*(int *)((int)pppPVar20 + 0x60) + 4);
  var_28 = (*local_5c)->options_;
  *(int *)((int)pppPVar20 + 4) = var_4;
  var_27 = *(type_6 *)(var_4 + 0xac);
  var_3 = (type_4 *)(type_2)var_27;
  pppPVar21 = pppPVar20;
  if (var_27 != 0) {
    if (var_28 == (type_4 *)0x0) goto LAB_000af218;
    goto LAB_000aeee2;
  }
  if (var_28 == (type_4 *)0x0) {
LAB_000af218:
    *(type_4 **)((int)pppPVar21 + -4) = var_3;
    *(char **)((int)pppPVar21 + -8) = "options";
    *(type_1 *)((int)pppPVar21 + -0xc) = 0x5c;
    *(char **)((int)pppPVar21 + -0x10) = "../../gold/parameters.h";
                    /* WARNING: Subroutine does not return */
    *(type_18 **)((int)pppPVar21 + -0x14) = &UNK_000af22e;
    var_29(*(char **)((int)pppPVar21 + -0x10),*(int *)((int)pppPVar21 + -0xc),
                        *(char **)((int)pppPVar21 + -8));
  }
  var_32 = false;
  var_39 = (var_28->relocatable_).value == false;
  if (!var_39) goto LAB_000af100;
  var_4 = 7;
  var_30 = (type_6 *)".ctors.";
  var_31 = *(type_6 **)((int)pppPVar20 + 0x6c);
  do {
    if (var_4 == 0) break;
    var_4 = var_4 + -1;
    var_32 = *var_30 < *var_31;
    var_39 = *var_30 == *var_31;
    var_30 = var_30 + (type_2)bVar31 * -2 + 1;
    var_31 = var_31 + (type_2)bVar31 * -2 + 1;
  } while (var_39);
  var_38 = false;
  var_32 = (!var_32 && !var_39) == var_32;
  if (var_32) {
LAB_000aee98:
    var_22->field_0x91 = var_22->field_0x91 | 8;
    var_27 = *(type_6 *)(*(int *)((int)pppPVar20 + 4) + 0xac);
    var_3 = (type_4 *)(type_2)var_27;
    if ((var_28->text_reorder_).value == false) {
LAB_000af249:
      if (var_27 != 0) goto LAB_000aeee2;
      goto LAB_000af10d;
    }
    if (var_27 != 0) goto LAB_000aeee2;
LAB_000aeebd:
    var_40 = (var_28->relocatable_).value;
    if (*(char *)(*(int *)((int)pppPVar20 + 0x60) + 0x1cd) != '\0') goto LAB_000af114;
    if ((bool)var_40 == false) {
      *(type_4 **)((int)pppPVar20 + 0xc) = var_28;
      puVar24 = var_33(var_34*)::var_35;
      *(char ***)((int)pppPVar20 + 8) = gdb_fast_lookup_sections;
      pcVar10 = ".text.unlikely";
      sVar15 = 0xe;
      while( true ) {
        *(size_t *)((int)pppPVar20 + -8) = sVar15;
        *(type_1 *)((int)pppPVar20 + -0xc) = *(type_1 *)((int)pppPVar20 + 0x6c);
        *(char **)((int)pppPVar20 + -0x10) = pcVar10;
        *(type_1 *)((int)pppPVar20 + -0x14) = 0xaf28d;
        var_4 = var_36(*(char **)((int)pppPVar20 + -0x10),*(char **)((int)pppPVar20 + -0xc),
                         *(size_t *)((int)pppPVar20 + -8));
        if (var_4 == 0) break;
        puVar24 = (type_9 *)((int)puVar24 + 4);
        if (*(type_1 **)((int)pppPVar20 + 8) == (type_1 *)puVar24) goto LAB_000af11c;
        pcVar10 = *(char **)puVar24;
        *(char **)((int)pppPVar20 + -0x10) = pcVar10;
        *(type_1 *)((int)pppPVar20 + -0x14) = 0xaf2ac;
        sVar15 = var_37(*(char **)((int)pppPVar20 + -0x10));
      }
      var_28 = *(type_4 **)((int)pppPVar20 + 0xc);
      var_22->field_0x91 = var_22->field_0x91 | 8;
      var_27 = *(type_6 *)(*(int *)((int)pppPVar20 + 4) + 0xac);
      var_3 = (type_4 *)(type_2)var_27;
      goto LAB_000af249;
    }
  }
  else {
    var_4 = 7;
    var_30 = (type_6 *)".dtors.";
    var_31 = *(type_6 **)((int)pppPVar20 + 0x6c);
    do {
      if (var_4 == 0) break;
      var_4 = var_4 + -1;
      var_38 = *var_30 < *var_31;
      var_32 = *var_30 == *var_31;
      var_30 = var_30 + (type_2)bVar31 * -2 + 1;
      var_31 = var_31 + (type_2)bVar31 * -2 + 1;
    } while (var_32);
    var_39 = false;
    var_32 = (!var_38 && !var_32) == var_38;
    if (var_32) goto LAB_000aee98;
    var_4 = 0xc;
    var_30 = (type_6 *)".init_array.";
    var_31 = *(type_6 **)((int)pppPVar20 + 0x6c);
    do {
      if (var_4 == 0) break;
      var_4 = var_4 + -1;
      var_39 = *var_30 < *var_31;
      var_32 = *var_30 == *var_31;
      var_30 = var_30 + (type_2)bVar31 * -2 + 1;
      var_31 = var_31 + (type_2)bVar31 * -2 + 1;
    } while (var_32);
    var_38 = false;
    var_32 = (!var_39 && !var_32) == var_39;
    if (var_32) goto LAB_000aee98;
    var_4 = 0xc;
    var_30 = (type_6 *)".fini_array.";
    var_31 = *(type_6 **)((int)pppPVar20 + 0x6c);
    do {
      if (var_4 == 0) break;
      var_4 = var_4 + -1;
      var_38 = *var_30 < *var_31;
      var_32 = *var_30 == *var_31;
      var_30 = var_30 + (type_2)bVar31 * -2 + 1;
      var_31 = var_31 + (type_2)bVar31 * -2 + 1;
    } while (var_32);
    if ((!var_38 && !var_32) == var_38) goto LAB_000aee98;
    var_32 = false;
    var_39 = (var_28->ctors_in_init_array_).value == false;
    if (!var_39) {
      var_4 = 7;
      var_30 = *(type_6 **)((int)pppPVar20 + 0x6c);
      var_31 = (type_6 *)".ctors";
      do {
        if (var_4 == 0) break;
        var_4 = var_4 + -1;
        var_32 = *var_30 < *var_31;
        var_39 = *var_30 == *var_31;
        var_30 = var_30 + (type_2)bVar31 * -2 + 1;
        var_31 = var_31 + (type_2)bVar31 * -2 + 1;
      } while (var_39);
      var_38 = false;
      var_32 = (!var_32 && !var_39) == var_32;
      if (!var_32) {
        var_4 = 7;
        var_30 = *(type_6 **)((int)pppPVar20 + 0x6c);
        var_31 = (type_6 *)".dtors";
        do {
          if (var_4 == 0) break;
          var_4 = var_4 + -1;
          var_38 = *var_30 < *var_31;
          var_32 = *var_30 == *var_31;
          var_30 = var_30 + (type_2)bVar31 * -2 + 1;
          var_31 = var_31 + (type_2)bVar31 * -2 + 1;
        } while (var_32);
        if ((!var_38 && !var_32) != var_38) goto LAB_000af100;
      }
      goto LAB_000aee98;
    }
LAB_000af100:
    if ((var_28->text_reorder_).value != false) goto LAB_000aeebd;
LAB_000af10d:
    var_40 = (var_28->relocatable_).value;
LAB_000af114:
    if (var_40 == '\0') {
LAB_000af11c:
      var_8 = *(type_2 *)(**(int **)((int)pppPVar20 + 0x70) + 0x14);
      var_8 = var_8 >> 0x18 | (var_8 & 0xff0000) >> 8 | (var_8 & 0xff00) << 8 | var_8 << 0x18;
      var_32 = var_8 < 4;
      var_39 = var_8 == 4;
      if (4 < var_8) {
        var_4 = 7;
        var_30 = *(type_6 **)((int)pppPVar20 + 0x6c);
        var_31 = (type_6 *)".ctors";
        do {
          if (var_4 == 0) break;
          var_4 = var_4 + -1;
          var_32 = *var_30 < *var_31;
          var_39 = *var_30 == *var_31;
          var_30 = var_30 + (type_2)bVar31 * -2 + 1;
          var_31 = var_31 + (type_2)bVar31 * -2 + 1;
        } while (var_39);
        var_38 = false;
        var_32 = (!var_32 && !var_39) == var_32;
        if (var_32) {
LAB_000af164:
          var_39 = false;
          var_4 = 0xc;
          var_30 = (type_6 *)var_22->name_;
          var_31 = (type_6 *)".init_array";
          do {
            if (var_4 == 0) break;
            var_4 = var_4 + -1;
            var_39 = *var_30 < *var_31;
            var_32 = *var_30 == *var_31;
            var_30 = var_30 + (type_2)bVar31 * -2 + 1;
            var_31 = var_31 + (type_2)bVar31 * -2 + 1;
          } while (var_32);
          var_32 = (!var_39 && !var_32) == var_39;
          if (!var_32) goto LAB_000af1d0;
        }
        else {
          var_4 = 7;
          var_30 = (type_6 *)".ctors.";
          var_31 = *(type_6 **)((int)pppPVar20 + 0x6c);
          do {
            if (var_4 == 0) break;
            var_4 = var_4 + -1;
            var_38 = *var_30 < *var_31;
            var_32 = *var_30 == *var_31;
            var_30 = var_30 + (type_2)bVar31 * -2 + 1;
            var_31 = var_31 + (type_2)bVar31 * -2 + 1;
          } while (var_32);
          var_32 = (!var_38 && !var_32) == var_38;
          if (var_32) goto LAB_000af164;
LAB_000af1d0:
          var_39 = false;
          var_4 = 7;
          var_30 = *(type_6 **)((int)pppPVar20 + 0x6c);
          var_31 = (type_6 *)".dtors";
          do {
            if (var_4 == 0) break;
            var_4 = var_4 + -1;
            var_39 = *var_30 < *var_31;
            var_32 = *var_30 == *var_31;
            var_30 = var_30 + (type_2)bVar31 * -2 + 1;
            var_31 = var_31 + (type_2)bVar31 * -2 + 1;
          } while (var_32);
          var_38 = false;
          var_32 = (!var_39 && !var_32) == var_39;
          if (!var_32) {
            var_4 = 7;
            var_30 = (type_6 *)".dtors.";
            var_31 = *(type_6 **)((int)pppPVar20 + 0x6c);
            do {
              if (var_4 == 0) break;
              var_4 = var_4 + -1;
              var_38 = *var_30 < *var_31;
              var_32 = *var_30 == *var_31;
              var_30 = var_30 + (type_2)bVar31 * -2 + 1;
              var_31 = var_31 + (type_2)bVar31 * -2 + 1;
            } while (var_32);
            var_32 = (!var_38 && !var_32) == var_38;
            if (!var_32) goto LAB_000aeee0;
          }
          var_39 = false;
          var_4 = 0xc;
          var_30 = (type_6 *)var_22->name_;
          var_31 = (type_6 *)".fini_array";
          do {
            if (var_4 == 0) break;
            var_4 = var_4 + -1;
            var_39 = *var_30 < *var_31;
            var_32 = *var_30 == *var_31;
            var_30 = var_30 + (type_2)bVar31 * -2 + 1;
            var_31 = var_31 + (type_2)bVar31 * -2 + 1;
          } while (var_32);
          if ((!var_39 && !var_32) != var_39) goto LAB_000aeee0;
        }
        *(type_1 *)((int)pppPVar20 + 0x28) = *(type_1 *)((int)pppPVar20 + 100);
        *(type_1 *)((int)pppPVar20 + 0x2c) = *(type_1 *)((int)pppPVar20 + 0x68);
        *(unordered_set<std::var_18<gold::type_15*,var_20>,_gold::Section_id_hash,_std::equal_to<std::var_18<gold::type_15*,var_20>var_15>,_std::allocator<std::var_18<gold::type_15*,var_20>var_15>var_15>
          **)((int)pppPVar20 + 0x24) = &ctors_sections_in_init_array;
        *(type_1 *)((int)pppPVar20 + -0xc) = 1;
        *(type_1 *)((int)pppPVar20 + -0x10) = 0;
        *(type_9 **)((int)pppPVar20 + -0x14) = (type_9 *)((int)pppPVar20 + 0x24);
        *(type_9 **)((int)pppPVar20 + -0x18) = (type_9 *)((int)pppPVar20 + 0x28);
        *(unordered_set<std::var_18<gold::type_15*,var_20>,_gold::Section_id_hash,_std::equal_to<std::var_18<gold::type_15*,var_20>var_15>,_std::allocator<std::var_18<gold::type_15*,var_20>var_15>var_15>
          **)((int)pppPVar20 + -0x1c) = &ctors_sections_in_init_array;
        *(type_9 **)((int)pppPVar20 + -0x20) = (type_9 *)((int)pppPVar20 + 0x10);
        *(type_1 *)((int)pppPVar20 + -0x24) = 0xaf1b3;
        std::
        _Hashtable<std::var_18<gold::type_15*,var_20>,_std::var_18<gold::type_15*,var_20>,_std::allocator<std::var_18<gold::type_15*,var_20>var_15>,_std::__detail::_Identity,_std::equal_to<std::var_18<gold::type_15*,var_20>var_15>,_gold::Section_id_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,var_2,var_2>var_15>
        ::
        _M_insert<std::var_18<gold::type_15*,var_20>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::var_18<gold::type_15*,var_20>,var_2>var_15>var_15>var_15>
                  ();
        var_3 = (type_4 *)
                  (type_2)*(type_6 *)(*(int *)(*(int *)((int)pppPVar20 + 0x60) + 4) + 0xac);
        goto LAB_000aeee2;
      }
    }
  }
LAB_000aeee0:
  var_3 = (type_4 *)0x0;
LAB_000aeee2:
  var_8 = (type_2)var_22->flags_;
  *(type_4 **)((int)pppPVar20 + -4) = var_3;
  *(type_1 *)((int)pppPVar20 + -8) = *(type_1 *)((int)pppPVar20 + 0x78);
  *(type_1 *)((int)pppPVar20 + -0xc) = *(type_1 *)((int)pppPVar20 + 0x70);
  *(type_1 *)((int)pppPVar20 + -0x10) = *(type_1 *)((int)pppPVar20 + 0x6c);
  *(type_1 *)((int)pppPVar20 + -0x14) = *(type_1 *)((int)pppPVar20 + 0x68);
  *(type_1 *)((int)pppPVar20 + -0x18) = *(type_1 *)((int)pppPVar20 + 100);
  *(type_1 *)((int)pppPVar20 + -0x1c) = *(type_1 *)((int)pppPVar20 + 0x60);
  *(type_3 **)((int)pppPVar20 + -0x20) = var_22;
  *(type_1 *)((int)pppPVar20 + -0x24) = 0xaef04;
  oVar32 = type_3::add_input_section<32,var_2>
                     (*(type_3 **)((int)pppPVar20 + -0x20),
                      *(type_12 **)((int)pppPVar20 + -0x1c),
                      *(var_41<32,var_2> **)((int)pppPVar20 + -0x18),
                      *(type_2 *)((int)pppPVar20 + -0x14),*(char **)((int)pppPVar20 + -0x10),
                      *(var_42<32,var_2> **)((int)pppPVar20 + -0xc),*(type_2 *)((int)pppPVar20 + -8),
                      *(bool *)((int)pppPVar20 + -4));
  **(type_11 **)((int)pppPVar20 + 0x80) = oVar32;
  if (((var_8 & 2) != 0) && (((var_8 ^ (type_2)var_22->flags_) & 5) != 0)) {
    *(type_1 *)((int)pppPVar20 + -8) = 0;
    *(type_3 **)((int)pppPVar20 + -0xc) = var_22;
    *(type_1 *)((int)pppPVar20 + -0x10) = *(type_1 *)((int)pppPVar20 + 0x60);
    *(type_1 *)((int)pppPVar20 + -0x14) = 0xaef32;
    OVar13 = var_43
                       (*(type_12 **)((int)pppPVar20 + -0x10),
                        *(type_3 **)((int)pppPVar20 + -0xc),*(bool *)((int)pppPVar20 + -8));
    var_22->order_ = OVar13;
  }
  *(type_9 *)(*(int *)((int)pppPVar20 + 0x60) + 0x1c4) = 1;
  return var_22;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

int MASKED(int param_1,int *param_2,undefined4 param_3,int *param_4,int *param_5,
                undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 *param_9)

{
  uint uVar1;
  undefined4 *puVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  char cVar6;
  undefined4 uVar7;
  int iVar8;
  uint uVar9;
  size_t sVar10;
  byte bVar11;
  int iVar12;
  int *piVar13;
  int *piVar14;
  int **ppiVar15;
  int **ppiVar16;
  int **ppiVar17;
  byte *pbVar18;
  undefined **ppuVar19;
  byte *pbVar20;
  char *pcVar21;
  bool bVar22;
  bool bVar23;
  undefined1 uVar24;
  bool bVar25;
  undefined1 uVar26;
  byte bVar27;
  undefined8 uVar28;
  int unaff_retaddr;
  int *apiStackY_8c [3];
  int *apiStack_60 [8];
  int *local_40 [3];
  undefined1 local_34 [4];
  byte local_30 [28];
  undefined4 uStack_14;
  
  bVar27 = 0;
  uStack_14 = 0xaec39;
  *param_9 = 0;
  param_9[1] = 0;
  apiStack_60[0] = param_5;
  cVar6 = FUN_000a77e0(param_1,param_2,param_4);
  ppiVar16 = apiStack_60 + 1;
  ppiVar15 = apiStack_60 + 1;
  if (cVar6 == '\0') {
    return 0;
  }
  uVar9 = *(uint *)(DAT_0038f378 + 8);
  if (uVar9 == 0) goto LAB_000af218;
  if (*(char *)(uVar9 + 0x318d) == '\0') {
LAB_000aeca9:
    piVar13 = &DAT_0038f378;
    if (*(char *)(uVar9 + 0x5871) != '\0') {
      uVar24 = apiStack_60 + 1 < (int **)0x4;
      uVar26 = &stack0x00000000 == (undefined1 *)0x60;
      apiStack_60[2] = &DAT_0038f378;
      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);
      iVar8 = 0xe;
      apiStack_60[2] = (int *)0x28a53f;
      pbVar18 = (byte *)".text.unlikely";
      pbVar20 = (byte *)local_40[2];
      do {
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        uVar24 = *pbVar18 < *pbVar20;
        uVar26 = *pbVar18 == *pbVar20;
        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
      } while ((bool)uVar26);
      ppiVar15 = apiStack_60;
      if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {
        if ((byte *)local_40[2] != local_30) {
          FUN_001e6db0(local_40[2]);
        }
        ppiVar17 = apiStack_60;
        uVar9 = *(uint *)(*param_4 + 8);
        uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;
        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000af2db;
        uVar4 = uVar1 & 0xfffff50f;
        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {
          uVar4 = uVar1 & 0xfffff58f;
        }
        uVar7 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);
        iVar8 = FUN_0009fd60(unaff_retaddr,uVar7,local_40[2],param_5,
                             uVar4 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18,0,0,0);
        ppiVar16 = apiStack_60;
        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;
        goto LAB_000aedb0;
      }
      piVar13 = apiStack_60[1];
      if ((byte *)local_40[2] != local_30) {
        FUN_001e6db0(local_40[2]);
        ppiVar15 = apiStack_60;
        piVar13 = apiStack_60[1];
      }
    }
    ppiVar15[1] = piVar13;
    ppiVar15[10] = ppiVar15[0x19];
    ppiVar15[0xb] = ppiVar15[0x1a];
    ppiVar15[-2] = (int *)local_34;
    ppiVar15[-3] = ppiVar15[0x18] + 0x81;
    ppiVar15[-4] = (int *)(ppiVar15 + 7);
    ppiVar15[-5] = (int *)0xaece7;
    FUN_000a9000();
    piVar13 = ppiVar15[6];
    ppiVar17 = ppiVar15 + -1;
    uVar9 = *(uint *)(*ppiVar15[0x1b] + 8);
    uVar1 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8;
    uVar4 = (uVar9 & 0xff00) << 8;
    if (piVar13 == ppiVar15[0x17] + 0x82) {
      ppiVar15[-3] = (int *)0x1;
      ppiVar15[-4] = (int *)0x0;
      ppiVar15[-5] = (int *)0x0;
      ppiVar15[-6] = (int *)0x0;
      ppiVar15[-7] = (int *)0x1;
      ppiVar15[-8] = (int *)0x0;
      ppiVar15[-9] = (int *)(uVar1 | uVar4 | uVar9 << 0x18);
      ppiVar15[-10] = ppiVar15[0x1c];
      ppiVar15[-0xb] = ppiVar15[0x1a];
      ppiVar15[-0xc] = ppiVar15[0x18];
      ppiVar15[-0xd] = ppiVar15[0x17];
      ppiVar15[-0xe] = (int *)0xaf062;
      iVar8 = FUN_0009fff0();
      ppiVar16 = ppiVar15 + -1;
      apiStack_60[1] = *ppiVar15;
      if (iVar8 == 0) {
        return 0;
      }
    }
    else {
      iVar8 = *(int *)(**ppiVar15 + 8);
      if (iVar8 == 0) {
LAB_000af2db:
                    /* WARNING: Subroutine does not return */
        *(code **)((int)ppiVar17 + -4) = FUN_000af2e0;
        FUN_00096010();
      }
      uVar5 = uVar1 & 0xfffff50f;
      if (*(char *)(iVar8 + 0x318d) != '\0') {
        uVar5 = uVar1 & 0xfffff58f;
      }
      puVar2 = (undefined4 *)piVar13[6];
      *ppiVar15 = *ppiVar15;
      ppiVar15[-2] = (int *)local_34;
      ppiVar15[-3] = (int *)0x1;
      ppiVar15[-4] = (int *)*puVar2;
      ppiVar15[-5] = ppiVar15[0x17] + 2;
      ppiVar15[-6] = (int *)0xaed4e;
      uVar7 = FUN_00174930();
      ppiVar15[-2] = (int *)0x0;
      ppiVar15[-3] = (int *)0x0;
      ppiVar15[-4] = (int *)0x0;
      ppiVar15[-5] = (int *)(uVar5 | uVar4 | uVar9 << 0x18);
      ppiVar15[-6] = ppiVar15[0x1c];
      ppiVar15[-7] = ppiVar15[9];
      ppiVar15[-8] = (int *)uVar7;
      ppiVar15[-9] = ppiVar15[0x17];
      ppiVar15[-10] = (int *)0xaed6c;
      iVar8 = FUN_0009fd60();
      apiStack_60[1] = *ppiVar15;
      ppiVar16 = ppiVar15 + -1;
      if (-1 < (char)*(byte *)(iVar8 + 0x92)) {
        *(byte *)(iVar8 + 0x92) = *(byte *)(iVar8 + 0x92) | 0x80;
        iVar12 = piVar13[6];
        uVar7 = *(undefined4 *)(iVar12 + 8);
        *(undefined4 *)(iVar8 + 0x9c) = *(undefined4 *)(iVar12 + 4);
        uVar3 = *(undefined4 *)(iVar12 + 0xc);
        *(undefined4 *)(iVar8 + 0xa0) = uVar7;
        uVar7 = *(undefined4 *)(iVar12 + 0x10);
        *(undefined4 *)(iVar8 + 0xa4) = uVar3;
        *(undefined4 *)(iVar8 + 0xa8) = uVar7;
        ppiVar16 = ppiVar15 + -1;
      }
    }
  }
  else {
    uVar1 = *(uint *)(*param_5 + 8);
    uVar4 = (uVar1 & 0xff0000) >> 8;
    if ((uVar4 & 0x200) == 0) goto LAB_000aeca9;
    apiStack_60[0] = (int *)0x0;
    apiStack_60[2] = &DAT_0038f378;
    uVar7 = FUN_00174930(param_1 + 8,param_4,1);
    iVar8 = FUN_0009b860(param_1,uVar7,param_6,
                         uVar1 >> 0x18 | uVar4 & 0xfffff7ff | (uVar1 & 0xff00) << 8 | uVar1 << 0x18,
                         0,0,0);
    ppiVar16 = apiStack_60 + 1;
    apiStack_60[1] = apiStack_60[2];
  }
LAB_000aedb0:
  piVar13 = (int *)ppiVar16[0x18][1];
  piVar14 = *(int **)(*apiStack_60[1] + 8);
  ppiVar16[1] = piVar13;
  bVar11 = *(byte *)(piVar13 + 0x2b);
  uVar9 = (uint)bVar11;
  if (bVar11 != 0) {
    if (piVar14 == (int *)0x0) goto LAB_000af218;
    goto LAB_000aeee2;
  }
  if (piVar14 == (int *)0x0) {
LAB_000af218:
    ppiVar16[0xffffffff] = (int *)uVar9;
    ppiVar16[0xfffffffe] = (int *)"options";
    ppiVar16[0xfffffffd] = (int *)0x5c;
    ppiVar16[0xfffffffc] = (int *)"../../gold/parameters.h";
                    /* WARNING: Subroutine does not return */
    ppiVar16[0xfffffffb] = (int *)0xaf22e;
    FUN_00069d00();
  }
  bVar22 = false;
  bVar25 = *(char *)((int)piVar14 + 0x318d) == '\0';
  if (!bVar25) goto LAB_000af100;
  iVar12 = 7;
  pbVar18 = (byte *)".ctors.";
  pbVar20 = (byte *)ppiVar16[0x1b];
  do {
    if (iVar12 == 0) break;
    iVar12 = iVar12 + -1;
    bVar22 = *pbVar18 < *pbVar20;
    bVar25 = *pbVar18 == *pbVar20;
    pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
    pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
  } while (bVar25);
  bVar23 = false;
  bVar22 = (!bVar22 && !bVar25) == bVar22;
  if (bVar22) {
LAB_000aee98:
    *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;
    bVar11 = *(byte *)(ppiVar16[1] + 0x2b);
    uVar9 = (uint)bVar11;
    if (*(char *)((int)piVar14 + 0x3ced) == '\0') {
LAB_000af249:
      if (bVar11 != 0) goto LAB_000aeee2;
      goto LAB_000af10d;
    }
    if (bVar11 != 0) goto LAB_000aeee2;
LAB_000aeebd:
    cVar6 = *(char *)((int)piVar14 + 0x318d);
    if (*(char *)((int)ppiVar16[0x18] + 0x1cd) != '\0') goto LAB_000af114;
    if (cVar6 == '\0') {
      ppiVar16[3] = piVar14;
      ppuVar19 = &PTR_s__text_unlikely_003837a0;
      ppiVar16[2] = (int *)&PTR_s_aranges_003837b0;
      pcVar21 = ".text.unlikely";
      sVar10 = 0xe;
      while( true ) {
        ppiVar16[0xfffffffe] = (int *)sVar10;
        ppiVar16[0xfffffffd] = ppiVar16[0x1b];
        ppiVar16[0xfffffffc] = (int *)pcVar21;
        ppiVar16[0xfffffffb] = (int *)0xaf28d;
        iVar12 = strncmp((char *)ppiVar16[0xfffffffc],(char *)ppiVar16[0xfffffffd],
                         (size_t)ppiVar16[0xfffffffe]);
        if (iVar12 == 0) break;
        ppuVar19 = ppuVar19 + 1;
        if ((undefined **)ppiVar16[2] == ppuVar19) goto LAB_000af11c;
        pcVar21 = *ppuVar19;
        ppiVar16[0xfffffffc] = (int *)pcVar21;
        ppiVar16[0xfffffffb] = (int *)0xaf2ac;
        sVar10 = strlen((char *)ppiVar16[0xfffffffc]);
      }
      piVar14 = ppiVar16[3];
      *(byte *)(iVar8 + 0x91) = *(byte *)(iVar8 + 0x91) | 8;
      bVar11 = *(byte *)(ppiVar16[1] + 0x2b);
      uVar9 = (uint)bVar11;
      goto LAB_000af249;
    }
  }
  else {
    iVar12 = 7;
    pbVar18 = (byte *)".dtors.";
    pbVar20 = (byte *)ppiVar16[0x1b];
    do {
      if (iVar12 == 0) break;
      iVar12 = iVar12 + -1;
      bVar23 = *pbVar18 < *pbVar20;
      bVar22 = *pbVar18 == *pbVar20;
      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
    } while (bVar22);
    bVar25 = false;
    bVar22 = (!bVar23 && !bVar22) == bVar23;
    if (bVar22) goto LAB_000aee98;
    iVar12 = 0xc;
    pbVar18 = (byte *)".init_array.";
    pbVar20 = (byte *)ppiVar16[0x1b];
    do {
      if (iVar12 == 0) break;
      iVar12 = iVar12 + -1;
      bVar25 = *pbVar18 < *pbVar20;
      bVar22 = *pbVar18 == *pbVar20;
      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
    } while (bVar22);
    bVar23 = false;
    bVar22 = (!bVar25 && !bVar22) == bVar25;
    if (bVar22) goto LAB_000aee98;
    iVar12 = 0xc;
    pbVar18 = (byte *)".fini_array.";
    pbVar20 = (byte *)ppiVar16[0x1b];
    do {
      if (iVar12 == 0) break;
      iVar12 = iVar12 + -1;
      bVar23 = *pbVar18 < *pbVar20;
      bVar22 = *pbVar18 == *pbVar20;
      pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
      pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
    } while (bVar22);
    if ((!bVar23 && !bVar22) == bVar23) goto LAB_000aee98;
    bVar22 = false;
    bVar25 = *(char *)((int)piVar14 + 0xad5) == '\0';
    if (!bVar25) {
      iVar12 = 7;
      pbVar18 = (byte *)ppiVar16[0x1b];
      pbVar20 = (byte *)".ctors";
      do {
        if (iVar12 == 0) break;
        iVar12 = iVar12 + -1;
        bVar22 = *pbVar18 < *pbVar20;
        bVar25 = *pbVar18 == *pbVar20;
        pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
        pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
      } while (bVar25);
      bVar23 = false;
      bVar22 = (!bVar22 && !bVar25) == bVar22;
      if (!bVar22) {
        iVar12 = 7;
        pbVar18 = (byte *)ppiVar16[0x1b];
        pbVar20 = (byte *)".dtors";
        do {
          if (iVar12 == 0) break;
          iVar12 = iVar12 + -1;
          bVar23 = *pbVar18 < *pbVar20;
          bVar22 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
        } while (bVar22);
        if ((!bVar23 && !bVar22) != bVar23) goto LAB_000af100;
      }
      goto LAB_000aee98;
    }
LAB_000af100:
    if (*(char *)((int)piVar14 + 0x3ced) != '\0') goto LAB_000aeebd;
LAB_000af10d:
    cVar6 = *(char *)((int)piVar14 + 0x318d);
LAB_000af114:
    if (cVar6 == '\0') {
LAB_000af11c:
      uVar9 = *(uint *)(*ppiVar16[0x1c] + 0x14);
      uVar9 = uVar9 >> 0x18 | (uVar9 & 0xff0000) >> 8 | (uVar9 & 0xff00) << 8 | uVar9 << 0x18;
      bVar22 = uVar9 < 4;
      bVar25 = uVar9 == 4;
      if (4 < uVar9) {
        iVar12 = 7;
        pbVar18 = (byte *)ppiVar16[0x1b];
        pbVar20 = (byte *)".ctors";
        do {
          if (iVar12 == 0) break;
          iVar12 = iVar12 + -1;
          bVar22 = *pbVar18 < *pbVar20;
          bVar25 = *pbVar18 == *pbVar20;
          pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
          pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
        } while (bVar25);
        bVar23 = false;
        bVar22 = (!bVar22 && !bVar25) == bVar22;
        if (bVar22) {
LAB_000af164:
          bVar25 = false;
          iVar12 = 0xc;
          pbVar18 = *(byte **)(iVar8 + 0x20);
          pbVar20 = (byte *)".init_array";
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = *pbVar18 < *pbVar20;
            bVar22 = *pbVar18 == *pbVar20;
            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
          } while (bVar22);
          bVar22 = (!bVar25 && !bVar22) == bVar25;
          if (!bVar22) goto LAB_000af1d0;
        }
        else {
          iVar12 = 7;
          pbVar18 = (byte *)".ctors.";
          pbVar20 = (byte *)ppiVar16[0x1b];
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar23 = *pbVar18 < *pbVar20;
            bVar22 = *pbVar18 == *pbVar20;
            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
          } while (bVar22);
          bVar22 = (!bVar23 && !bVar22) == bVar23;
          if (bVar22) goto LAB_000af164;
LAB_000af1d0:
          bVar25 = false;
          iVar12 = 7;
          pbVar18 = (byte *)ppiVar16[0x1b];
          pbVar20 = (byte *)".dtors";
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = *pbVar18 < *pbVar20;
            bVar22 = *pbVar18 == *pbVar20;
            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
          } while (bVar22);
          bVar23 = false;
          bVar22 = (!bVar25 && !bVar22) == bVar25;
          if (!bVar22) {
            iVar12 = 7;
            pbVar18 = (byte *)".dtors.";
            pbVar20 = (byte *)ppiVar16[0x1b];
            do {
              if (iVar12 == 0) break;
              iVar12 = iVar12 + -1;
              bVar23 = *pbVar18 < *pbVar20;
              bVar22 = *pbVar18 == *pbVar20;
              pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
            } while (bVar22);
            bVar22 = (!bVar23 && !bVar22) == bVar23;
            if (!bVar22) goto LAB_000aeee0;
          }
          bVar25 = false;
          iVar12 = 0xc;
          pbVar18 = *(byte **)(iVar8 + 0x20);
          pbVar20 = (byte *)".fini_array";
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = *pbVar18 < *pbVar20;
            bVar22 = *pbVar18 == *pbVar20;
            pbVar18 = pbVar18 + (uint)bVar27 * -2 + 1;
            pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
          } while (bVar22);
          if ((!bVar25 && !bVar22) != bVar25) goto LAB_000aeee0;
        }
        ppiVar16[10] = ppiVar16[0x19];
        ppiVar16[0xb] = ppiVar16[0x1a];
        ppiVar16[9] = &DAT_0038f4c4;
        ppiVar16[0xfffffffd] = (int *)0x1;
        ppiVar16[0xfffffffc] = (int *)0x0;
        ppiVar16[0xfffffffb] = (int *)(ppiVar16 + 9);
        ppiVar16[0xfffffffa] = (int *)(ppiVar16 + 10);
        ppiVar16[0xfffffff9] = &DAT_0038f4c4;
        ppiVar16[0xfffffff8] = (int *)(ppiVar16 + 4);
        ppiVar16[0xfffffff7] = (int *)0xaf1b3;
        FUN_000ae400();
        ppiVar15 = ppiVar16 + 0x17;
        ppiVar16 = ppiVar16 + 0xffffffff;
        uVar9 = (uint)*(byte *)((*ppiVar15)[1] + 0xac);
        goto LAB_000aeee2;
      }
    }
  }
LAB_000aeee0:
  uVar9 = 0;
LAB_000aeee2:
  uVar1 = *(uint *)(iVar8 + 0x54);
  *(uint *)((int)ppiVar16 + -4) = uVar9;
  *(undefined4 *)((int)ppiVar16 + -8) = *(undefined4 *)((int)ppiVar16 + 0x78);
  *(undefined4 *)((int)ppiVar16 + -0xc) = *(undefined4 *)((int)ppiVar16 + 0x70);
  *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x6c);
  *(undefined4 *)((int)ppiVar16 + -0x14) = *(undefined4 *)((int)ppiVar16 + 0x68);
  *(undefined4 *)((int)ppiVar16 + -0x18) = *(undefined4 *)((int)ppiVar16 + 100);
  *(undefined4 *)((int)ppiVar16 + -0x1c) = *(undefined4 *)((int)ppiVar16 + 0x60);
  *(int *)((int)ppiVar16 + -0x20) = iVar8;
  *(undefined4 *)((int)ppiVar16 + -0x24) = 0xaef04;
  uVar28 = FUN_00126020();
  **(undefined8 **)((int)ppiVar16 + 0x80) = uVar28;
  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar8 + 0x54)) & 5) != 0)) {
    *(undefined4 *)((int)ppiVar16 + -8) = 0;
    *(int *)((int)ppiVar16 + -0xc) = iVar8;
    *(undefined4 *)((int)ppiVar16 + -0x10) = *(undefined4 *)((int)ppiVar16 + 0x60);
    *(undefined4 *)((int)ppiVar16 + -0x14) = 0xaef32;
    uVar7 = FUN_00097200();
    *(undefined4 *)(iVar8 + 0x5c) = uVar7;
  }
  *(undefined1 *)(*(int *)((int)ppiVar16 + 0x60) + 0x1c4) = 1;
  return iVar8;
}

