
/* 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, false>
   DWARF original prototype: Output_section * layout<32,_false>(Layout * this,
   Sized_relobj_file<32,_false> * object, uint shndx, char * name, Shdr<32,_false> * shdr, uint
   sh_type, uint reloc_shndx, uint param_9, off_t * off) */

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

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  bool bVar5;
  char cVar6;
  char *pcVar7;
  Output_section *pOVar8;
  General_options *pGVar9;
  Output_section_order OVar10;
  size_t sVar11;
  byte bVar12;
  int iVar13;
  Parameters **ppPVar14;
  General_options *pGVar15;
  Parameters ***pppPVar16;
  Parameters ***pppPVar17;
  byte *pbVar18;
  __hashtable_alloc *p_Var19;
  undefined1 *puVar20;
  uint uVar21;
  byte *pbVar22;
  __node_gen_type _Var23;
  bool bVar24;
  undefined1 uVar25;
  bool bVar26;
  undefined1 uVar27;
  byte bVar28;
  off_t oVar29;
  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;
  
  bVar28 = 0;
  uStack_14 = 0xae579;
  *(undefined4 *)off = 0;
  *(undefined4 *)((int)off + 4) = 0;
  bVar5 = include_section<32,_false>(this,object,name,shdr);
  pppPVar16 = &local_5c;
  if (!bVar5) {
    return (Output_section *)0x0;
  }
  pGVar9 = parameters->options_;
  pppPVar17 = &local_5c;
  if (pGVar9 == (General_options *)0x0) goto LAB_000aeb68;
  if (((pGVar9->relocatable_).value == false) ||
     (uVar21 = shdr->p_->sh_flags, (uVar21 & 0x200) == 0)) {
    ppPVar14 = &parameters;
    if ((pGVar9->text_unlikely_segment_).value != false) {
      uVar25 = &local_5c < (undefined1 *)0x4;
      uVar27 = &stack0x00000000 == (undefined1 *)0x60;
      local_58 = &parameters;
      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])
                (&name_key,object,shndx);
      iVar13 = 0xe;
      local_58 = (Parameters **)0x28a53f;
      p_Var19 = (__hashtable_alloc *)".text.unlikely";
      _Var23 = __node_gen;
      do {
        if (iVar13 == 0) break;
        iVar13 = iVar13 + -1;
        uVar25 = (byte)*p_Var19 < (byte)*_Var23._M_h;
        uVar27 = *p_Var19 == *_Var23._M_h;
        p_Var19 = p_Var19 + (uint)bVar28 * -2 + 1;
        _Var23._M_h = _Var23._M_h + (uint)bVar28 * -2 + 1;
      } while ((bool)uVar27);
      pppPVar16 = (Parameters ***)&stack0xffffffa0;
      if ((!(bool)uVar25 && !(bool)uVar27) == (bool)uVar25) {
        if (__node_gen._M_h != local_30) {
          operator_delete(__node_gen._M_h);
        }
        pppPVar16 = (Parameters ***)&stack0xffffffa0;
        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000aec2b;
        uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff50f;
        if (((*local_5c)->options_->relocatable_).value != false) {
          uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff58f;
        }
        pcVar7 = Stringpool_template<char>::add
                           (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);
        pOVar8 = get_output_section(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,
                                    (ulonglong)uVar21,ORDER_INVALID,false);
        pppPVar16 = (Parameters ***)&stack0xffffffa0;
        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;
        goto LAB_000ae6f0;
      }
      ppPVar14 = local_5c;
      if (__node_gen._M_h != local_30) {
        operator_delete(__node_gen._M_h);
        pppPVar16 = (Parameters ***)&stack0xffffffa0;
        ppPVar14 = local_5c;
      }
    }
    *(Parameters ***)((int)pppPVar16 + 4) = ppPVar14;
    *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);
    *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 0x68);
    *(Key **)((int)pppPVar16 + -8) = &name_key;
    *(int *)((int)pppPVar16 + -0xc) = *(int *)((int)pppPVar16 + 0x60) + 0x204;
    *(undefined1 **)((int)pppPVar16 + -0x10) = (undefined1 *)((int)pppPVar16 + 0x1c);
    *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae625;
    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)pppPVar16 + -0x10),
           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar16 + -0xc));
    iVar13 = *(int *)((int)pppPVar16 + 0x1c);
    if (iVar13 == *(int *)((int)pppPVar16 + 0x60) + 0x208) {
      *(undefined4 *)((int)pppPVar16 + -8) = 1;
      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;
      *(undefined4 *)((int)pppPVar16 + -0x10) = 0;
      *(undefined4 *)((int)pppPVar16 + -0x14) = 0;
      *(undefined4 *)((int)pppPVar16 + -0x18) = 1;
      uVar3 = *(undefined4 *)(**(int **)((int)pppPVar16 + 0x70) + 8);
      *(undefined4 *)((int)pppPVar16 + -0x1c) = 0;
      *(undefined4 *)((int)pppPVar16 + -0x20) = uVar3;
      *(undefined4 *)((int)pppPVar16 + -0x24) = *(undefined4 *)((int)pppPVar16 + 0x74);
      *(undefined4 *)((int)pppPVar16 + -0x28) = *(undefined4 *)((int)pppPVar16 + 0x6c);
      *(undefined4 *)((int)pppPVar16 + -0x2c) = *(undefined4 *)((int)pppPVar16 + 100);
      *(undefined4 *)((int)pppPVar16 + -0x30) = *(undefined4 *)((int)pppPVar16 + 0x60);
      *(undefined4 *)((int)pppPVar16 + -0x34) = 0xae9ae;
      pOVar8 = choose_output_section
                         (*(Layout **)((int)pppPVar16 + -0x30),*(Relobj **)((int)pppPVar16 + -0x2c),
                          *(char **)((int)pppPVar16 + -0x28),*(Elf_Word *)((int)pppPVar16 + -0x24),
                          *(Elf_Xword *)((int)pppPVar16 + -0x20),*(bool *)((int)pppPVar16 + -0x18),
                          *(Output_section_order *)((int)pppPVar16 + -0x14),
                          *(bool *)((int)pppPVar16 + -0x10),*(bool *)((int)pppPVar16 + -0xc),
                          *(bool *)((int)pppPVar16 + -8));
      local_5c = *(Parameters ***)((int)pppPVar16 + 4);
      if (pOVar8 == (Output_section *)0x0) {
        return (Output_section *)0x0;
      }
    }
    else {
      iVar1 = *(int *)(**(int **)((int)pppPVar16 + 4) + 8);
      if (iVar1 == 0) {
LAB_000aec2b:
                    /* WARNING: Subroutine does not return */
        pppPVar16[-1] = (Parameters **)layout<32,_true>;
        Target::abi_pagesize((Target *)*pppPVar16);
      }
      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff50f;
      if (*(char *)(iVar1 + 0x318d) != '\0') {
        uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f;
      }
      puVar2 = *(undefined4 **)(iVar13 + 0x18);
      *(int **)((int)pppPVar16 + 4) = *(int **)((int)pppPVar16 + 4);
      *(Key **)((int)pppPVar16 + -4) = &name_key;
      *(undefined4 *)((int)pppPVar16 + -8) = 1;
      *(undefined4 *)((int)pppPVar16 + -0xc) = *puVar2;
      *(int *)((int)pppPVar16 + -0x10) = *(int *)((int)pppPVar16 + 0x60) + 8;
      *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae68b;
      pcVar7 = Stringpool_template<char>::add
                         (*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),
                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),
                          *(Key **)((int)pppPVar16 + -4));
      *(undefined4 *)((int)pppPVar16 + -4) = 0;
      *(undefined4 *)((int)pppPVar16 + -8) = 0;
      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;
      *(uint *)((int)pppPVar16 + -0x10) = uVar21;
      *(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x74);
      *(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 0x28);
      *(char **)((int)pppPVar16 + -0x1c) = pcVar7;
      *(undefined4 *)((int)pppPVar16 + -0x20) = *(undefined4 *)((int)pppPVar16 + 0x60);
      *(undefined4 *)((int)pppPVar16 + -0x24) = 0xae6a9;
      pOVar8 = get_output_section(*(Layout **)((int)pppPVar16 + -0x20),
                                  *(char **)((int)pppPVar16 + -0x1c),
                                  *(Key *)((int)pppPVar16 + -0x18),
                                  *(Elf_Word *)((int)pppPVar16 + -0x14),
                                  *(Elf_Xword *)((int)pppPVar16 + -0x10),
                                  *(Output_section_order *)((int)pppPVar16 + -8),
                                  *(bool *)((int)pppPVar16 + -4));
      local_5c = *(Parameters ***)((int)pppPVar16 + 4);
      if (-1 < (char)pOVar8->field_0x92) {
        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;
        iVar13 = *(int *)(iVar13 + 0x18);
        uVar3 = *(undefined4 *)(iVar13 + 8);
        *(undefined4 *)&pOVar8->extra_segment_flags_ = *(undefined4 *)(iVar13 + 4);
        uVar4 = *(undefined4 *)(iVar13 + 0xc);
        *(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4) = uVar3;
        uVar3 = *(undefined4 *)(iVar13 + 0x10);
        *(undefined4 *)&pOVar8->segment_alignment_ = uVar4;
        *(undefined4 *)((int)&pOVar8->segment_alignment_ + 4) = uVar3;
      }
    }
  }
  else {
    local_58 = &parameters;
    pcVar7 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);
    pOVar8 = make_output_section(this,pcVar7,sh_type,(ulonglong)(uVar21 & 0xfffff7ff),ORDER_INVALID,
                                 false);
    pppPVar16 = &local_5c;
    local_5c = local_58;
  }
LAB_000ae6f0:
  iVar13 = *(int *)(*(int *)((int)pppPVar16 + 0x60) + 4);
  pGVar15 = (*local_5c)->options_;
  *(int *)((int)pppPVar16 + 4) = iVar13;
  bVar12 = *(byte *)(iVar13 + 0xac);
  pGVar9 = (General_options *)(uint)bVar12;
  pppPVar17 = pppPVar16;
  if (bVar12 != 0) {
    if (pGVar15 == (General_options *)0x0) goto LAB_000aeb68;
    goto LAB_000ae822;
  }
  if (pGVar15 == (General_options *)0x0) {
LAB_000aeb68:
    *(General_options **)((int)pppPVar17 + -4) = pGVar9;
    *(char **)((int)pppPVar17 + -8) = "options";
    *(undefined4 *)((int)pppPVar17 + -0xc) = 0x5c;
    *(char **)((int)pppPVar17 + -0x10) = "../../gold/parameters.h";
                    /* WARNING: Subroutine does not return */
    *(undefined **)((int)pppPVar17 + -0x14) = &UNK_000aeb7e;
    do_gold_unreachable(*(char **)((int)pppPVar17 + -0x10),*(int *)((int)pppPVar17 + -0xc),
                        *(char **)((int)pppPVar17 + -8));
  }
  bVar5 = false;
  bVar26 = (pGVar15->relocatable_).value == false;
  if (!bVar26) goto LAB_000aea50;
  iVar13 = 7;
  pbVar18 = (byte *)".ctors.";
  pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);
  do {
    if (iVar13 == 0) break;
    iVar13 = iVar13 + -1;
    bVar5 = *pbVar18 < *pbVar22;
    bVar26 = *pbVar18 == *pbVar22;
    pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;
    pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
  } while (bVar26);
  bVar24 = false;
  bVar5 = (!bVar5 && !bVar26) == bVar5;
  if (bVar5) {
LAB_000ae7d8:
    pOVar8->field_0x91 = pOVar8->field_0x91 | 8;
    bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);
    pGVar9 = (General_options *)(uint)bVar12;
    if ((pGVar15->text_reorder_).value == false) {
LAB_000aeb99:
      if (bVar12 != 0) goto LAB_000ae822;
      goto LAB_000aea5d;
    }
    if (bVar12 != 0) goto LAB_000ae822;
LAB_000ae7fd:
    cVar6 = (pGVar15->relocatable_).value;
    if (*(char *)(*(int *)((int)pppPVar16 + 0x60) + 0x1cd) != '\0') goto LAB_000aea64;
    if ((bool)cVar6 == false) {
      *(General_options **)((int)pppPVar16 + 0xc) = pGVar15;
      puVar20 = special_ordering_of_input_section(char_const*)::text_section_sort;
      *(char ***)((int)pppPVar16 + 8) = gdb_fast_lookup_sections;
      pcVar7 = ".text.unlikely";
      sVar11 = 0xe;
      while( true ) {
        *(size_t *)((int)pppPVar16 + -8) = sVar11;
        *(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x6c);
        *(char **)((int)pppPVar16 + -0x10) = pcVar7;
        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebdd;
        iVar13 = strncmp(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),
                         *(size_t *)((int)pppPVar16 + -8));
        if (iVar13 == 0) break;
        puVar20 = (undefined1 *)((int)puVar20 + 4);
        if (*(undefined4 **)((int)pppPVar16 + 8) == (undefined4 *)puVar20) goto LAB_000aea6c;
        pcVar7 = *(char **)puVar20;
        *(char **)((int)pppPVar16 + -0x10) = pcVar7;
        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebfc;
        sVar11 = strlen(*(char **)((int)pppPVar16 + -0x10));
      }
      pGVar15 = *(General_options **)((int)pppPVar16 + 0xc);
      pOVar8->field_0x91 = pOVar8->field_0x91 | 8;
      bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);
      pGVar9 = (General_options *)(uint)bVar12;
      goto LAB_000aeb99;
    }
  }
  else {
    iVar13 = 7;
    pbVar18 = (byte *)".dtors.";
    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);
    do {
      if (iVar13 == 0) break;
      iVar13 = iVar13 + -1;
      bVar24 = *pbVar18 < *pbVar22;
      bVar5 = *pbVar18 == *pbVar22;
      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;
      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
    } while (bVar5);
    bVar26 = false;
    bVar5 = (!bVar24 && !bVar5) == bVar24;
    if (bVar5) goto LAB_000ae7d8;
    iVar13 = 0xc;
    pbVar18 = (byte *)".init_array.";
    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);
    do {
      if (iVar13 == 0) break;
      iVar13 = iVar13 + -1;
      bVar26 = *pbVar18 < *pbVar22;
      bVar5 = *pbVar18 == *pbVar22;
      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;
      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
    } while (bVar5);
    bVar24 = false;
    bVar5 = (!bVar26 && !bVar5) == bVar26;
    if (bVar5) goto LAB_000ae7d8;
    iVar13 = 0xc;
    pbVar18 = (byte *)".fini_array.";
    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);
    do {
      if (iVar13 == 0) break;
      iVar13 = iVar13 + -1;
      bVar24 = *pbVar18 < *pbVar22;
      bVar5 = *pbVar18 == *pbVar22;
      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;
      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
    } while (bVar5);
    if ((!bVar24 && !bVar5) == bVar24) goto LAB_000ae7d8;
    bVar5 = false;
    bVar26 = (pGVar15->ctors_in_init_array_).value == false;
    if (!bVar26) {
      iVar13 = 7;
      pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);
      pbVar22 = (byte *)".ctors";
      do {
        if (iVar13 == 0) break;
        iVar13 = iVar13 + -1;
        bVar5 = *pbVar18 < *pbVar22;
        bVar26 = *pbVar18 == *pbVar22;
        pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;
        pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
      } while (bVar26);
      bVar24 = false;
      bVar5 = (!bVar5 && !bVar26) == bVar5;
      if (!bVar5) {
        iVar13 = 7;
        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);
        pbVar22 = (byte *)".dtors";
        do {
          if (iVar13 == 0) break;
          iVar13 = iVar13 + -1;
          bVar24 = *pbVar18 < *pbVar22;
          bVar5 = *pbVar18 == *pbVar22;
          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;
          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
        } while (bVar5);
        if ((!bVar24 && !bVar5) != bVar24) goto LAB_000aea50;
      }
      goto LAB_000ae7d8;
    }
LAB_000aea50:
    if ((pGVar15->text_reorder_).value != false) goto LAB_000ae7fd;
LAB_000aea5d:
    cVar6 = (pGVar15->relocatable_).value;
LAB_000aea64:
    if (cVar6 == '\0') {
LAB_000aea6c:
      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14);
      bVar5 = uVar21 < 4;
      bVar26 = uVar21 == 4;
      if (4 < uVar21) {
        iVar13 = 7;
        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);
        pbVar22 = (byte *)".ctors";
        do {
          if (iVar13 == 0) break;
          iVar13 = iVar13 + -1;
          bVar5 = *pbVar18 < *pbVar22;
          bVar26 = *pbVar18 == *pbVar22;
          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;
          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
        } while (bVar26);
        bVar24 = false;
        bVar5 = (!bVar5 && !bVar26) == bVar5;
        if (bVar5) {
LAB_000aeab0:
          bVar26 = false;
          iVar13 = 0xc;
          pbVar18 = (byte *)pOVar8->name_;
          pbVar22 = (byte *)".init_array";
          do {
            if (iVar13 == 0) break;
            iVar13 = iVar13 + -1;
            bVar26 = *pbVar18 < *pbVar22;
            bVar5 = *pbVar18 == *pbVar22;
            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;
            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
          } while (bVar5);
          bVar5 = (!bVar26 && !bVar5) == bVar26;
          if (!bVar5) goto LAB_000aeb18;
        }
        else {
          iVar13 = 7;
          pbVar18 = (byte *)".ctors.";
          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);
          do {
            if (iVar13 == 0) break;
            iVar13 = iVar13 + -1;
            bVar24 = *pbVar18 < *pbVar22;
            bVar5 = *pbVar18 == *pbVar22;
            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;
            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
          } while (bVar5);
          bVar5 = (!bVar24 && !bVar5) == bVar24;
          if (bVar5) goto LAB_000aeab0;
LAB_000aeb18:
          bVar26 = false;
          iVar13 = 7;
          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);
          pbVar22 = (byte *)".dtors";
          do {
            if (iVar13 == 0) break;
            iVar13 = iVar13 + -1;
            bVar26 = *pbVar18 < *pbVar22;
            bVar5 = *pbVar18 == *pbVar22;
            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;
            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
          } while (bVar5);
          bVar24 = false;
          bVar5 = (!bVar26 && !bVar5) == bVar26;
          if (!bVar5) {
            iVar13 = 7;
            pbVar18 = (byte *)".dtors.";
            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);
            do {
              if (iVar13 == 0) break;
              iVar13 = iVar13 + -1;
              bVar24 = *pbVar18 < *pbVar22;
              bVar5 = *pbVar18 == *pbVar22;
              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;
              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
            } while (bVar5);
            bVar5 = (!bVar24 && !bVar5) == bVar24;
            if (!bVar5) goto LAB_000ae820;
          }
          bVar26 = false;
          iVar13 = 0xc;
          pbVar18 = (byte *)pOVar8->name_;
          pbVar22 = (byte *)".fini_array";
          do {
            if (iVar13 == 0) break;
            iVar13 = iVar13 + -1;
            bVar26 = *pbVar18 < *pbVar22;
            bVar5 = *pbVar18 == *pbVar22;
            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;
            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;
          } while (bVar5);
          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;
        }
        *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);
        *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 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)pppPVar16 + 0x24) = &ctors_sections_in_init_array;
        *(undefined4 *)((int)pppPVar16 + -0xc) = 1;
        *(undefined4 *)((int)pppPVar16 + -0x10) = 0;
        *(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24);
        *(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 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)pppPVar16 + -0x1c) = &ctors_sections_in_init_array;
        *(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10);
        *(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff;
        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>_>_>_>
                  ();
        pGVar9 = (General_options *)
                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);
        goto LAB_000ae822;
      }
    }
  }
LAB_000ae820:
  pGVar9 = (General_options *)0x0;
LAB_000ae822:
  uVar21 = (uint)pOVar8->flags_;
  *(General_options **)((int)pppPVar16 + -4) = pGVar9;
  *(undefined4 *)((int)pppPVar16 + -8) = *(undefined4 *)((int)pppPVar16 + 0x78);
  *(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x70);
  *(undefined4 *)((int)pppPVar16 + -0x10) = *(undefined4 *)((int)pppPVar16 + 0x6c);
  *(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x68);
  *(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 100);
  *(undefined4 *)((int)pppPVar16 + -0x1c) = *(undefined4 *)((int)pppPVar16 + 0x60);
  *(Output_section **)((int)pppPVar16 + -0x20) = pOVar8;
  *(undefined4 *)((int)pppPVar16 + -0x24) = 0xae844;
  oVar29 = Output_section::add_input_section<32,_false>
                     (*(Output_section **)((int)pppPVar16 + -0x20),
                      *(Layout **)((int)pppPVar16 + -0x1c),
                      *(Sized_relobj_file<32,_false> **)((int)pppPVar16 + -0x18),
                      *(uint *)((int)pppPVar16 + -0x14),*(char **)((int)pppPVar16 + -0x10),
                      *(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),
                      *(bool *)((int)pppPVar16 + -4));
  **(off_t **)((int)pppPVar16 + 0x80) = oVar29;
  if (((uVar21 & 2) != 0) && (((uVar21 ^ (uint)pOVar8->flags_) & 5) != 0)) {
    *(undefined4 *)((int)pppPVar16 + -8) = 0;
    *(Output_section **)((int)pppPVar16 + -0xc) = pOVar8;
    *(undefined4 *)((int)pppPVar16 + -0x10) = *(undefined4 *)((int)pppPVar16 + 0x60);
    *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae872;
    OVar10 = default_section_order
                       (*(Layout **)((int)pppPVar16 + -0x10),
                        *(Output_section **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8));
    pOVar8->order_ = OVar10;
  }
  *(undefined1 *)(*(int *)((int)pppPVar16 + 0x60) + 0x1c4) = 1;
  return pOVar8;
}



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

int FUN_000ae570(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;
  char cVar4;
  undefined4 uVar5;
  int iVar6;
  size_t sVar7;
  byte bVar8;
  int iVar9;
  int *piVar10;
  int *piVar11;
  int **ppiVar12;
  int **ppiVar13;
  int **ppiVar14;
  byte *pbVar15;
  undefined **ppuVar16;
  uint uVar17;
  byte *pbVar18;
  char *pcVar19;
  bool bVar20;
  bool bVar21;
  undefined1 uVar22;
  bool bVar23;
  undefined1 uVar24;
  byte bVar25;
  undefined8 uVar26;
  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;
  
  bVar25 = 0;
  uStack_14 = 0xae579;
  *param_9 = 0;
  param_9[1] = 0;
  apiStack_60[0] = param_5;
  cVar4 = FUN_000a7190(param_1,param_2,param_4);
  ppiVar13 = apiStack_60 + 1;
  ppiVar12 = apiStack_60 + 1;
  if (cVar4 == '\0') {
    return 0;
  }
  uVar17 = *(uint *)(DAT_0038f378 + 8);
  if (uVar17 == 0) goto LAB_000aeb68;
  if ((*(char *)(uVar17 + 0x318d) == '\0') ||
     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {
    piVar10 = &DAT_0038f378;
    if (*(char *)(uVar17 + 0x5871) != '\0') {
      uVar22 = apiStack_60 + 1 < (int **)0x4;
      uVar24 = &stack0x00000000 == (undefined1 *)0x60;
      apiStack_60[2] = &DAT_0038f378;
      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);
      iVar6 = 0xe;
      apiStack_60[2] = (int *)0x28a53f;
      pbVar15 = (byte *)".text.unlikely";
      pbVar18 = (byte *)local_40[2];
      do {
        if (iVar6 == 0) break;
        iVar6 = iVar6 + -1;
        uVar22 = *pbVar15 < *pbVar18;
        uVar24 = *pbVar15 == *pbVar18;
        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
      } while ((bool)uVar24);
      ppiVar12 = apiStack_60;
      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {
        if ((byte *)local_40[2] != local_30) {
          FUN_001e6db0(local_40[2]);
        }
        ppiVar14 = apiStack_60;
        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;
        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;
        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {
          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;
        }
        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);
        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);
        ppiVar13 = apiStack_60;
        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;
        goto LAB_000ae6f0;
      }
      piVar10 = apiStack_60[1];
      if ((byte *)local_40[2] != local_30) {
        FUN_001e6db0(local_40[2]);
        ppiVar12 = apiStack_60;
        piVar10 = apiStack_60[1];
      }
    }
    ppiVar12[1] = piVar10;
    ppiVar12[10] = ppiVar12[0x19];
    ppiVar12[0xb] = ppiVar12[0x1a];
    ppiVar12[-2] = (int *)local_34;
    ppiVar12[-3] = ppiVar12[0x18] + 0x81;
    ppiVar12[-4] = (int *)(ppiVar12 + 7);
    ppiVar12[-5] = (int *)0xae625;
    FUN_000a9000();
    piVar10 = ppiVar12[6];
    ppiVar14 = ppiVar12 + -1;
    if (piVar10 == ppiVar12[0x17] + 0x82) {
      ppiVar12[-3] = (int *)0x1;
      ppiVar12[-4] = (int *)0x0;
      ppiVar12[-5] = (int *)0x0;
      ppiVar12[-6] = (int *)0x0;
      ppiVar12[-7] = (int *)0x1;
      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);
      ppiVar12[-8] = (int *)0x0;
      ppiVar12[-9] = (int *)uVar5;
      ppiVar12[-10] = ppiVar12[0x1c];
      ppiVar12[-0xb] = ppiVar12[0x1a];
      ppiVar12[-0xc] = ppiVar12[0x18];
      ppiVar12[-0xd] = ppiVar12[0x17];
      ppiVar12[-0xe] = (int *)0xae9ae;
      iVar6 = FUN_0009fff0();
      ppiVar13 = ppiVar12 + -1;
      apiStack_60[1] = *ppiVar12;
      if (iVar6 == 0) {
        return 0;
      }
    }
    else {
      iVar6 = *(int *)(**ppiVar12 + 8);
      if (iVar6 == 0) {
LAB_000aec2b:
                    /* WARNING: Subroutine does not return */
        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;
        FUN_00096010();
      }
      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;
      if (*(char *)(iVar6 + 0x318d) != '\0') {
        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;
      }
      puVar2 = (undefined4 *)piVar10[6];
      *ppiVar12 = *ppiVar12;
      ppiVar12[-2] = (int *)local_34;
      ppiVar12[-3] = (int *)0x1;
      ppiVar12[-4] = (int *)*puVar2;
      ppiVar12[-5] = ppiVar12[0x17] + 2;
      ppiVar12[-6] = (int *)0xae68b;
      uVar5 = FUN_00174930();
      ppiVar12[-2] = (int *)0x0;
      ppiVar12[-3] = (int *)0x0;
      ppiVar12[-4] = (int *)0x0;
      ppiVar12[-5] = (int *)uVar17;
      ppiVar12[-6] = ppiVar12[0x1c];
      ppiVar12[-7] = ppiVar12[9];
      ppiVar12[-8] = (int *)uVar5;
      ppiVar12[-9] = ppiVar12[0x17];
      ppiVar12[-10] = (int *)0xae6a9;
      iVar6 = FUN_0009fd60();
      apiStack_60[1] = *ppiVar12;
      ppiVar13 = ppiVar12 + -1;
      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {
        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;
        iVar9 = piVar10[6];
        uVar5 = *(undefined4 *)(iVar9 + 8);
        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);
        uVar3 = *(undefined4 *)(iVar9 + 0xc);
        *(undefined4 *)(iVar6 + 0xa0) = uVar5;
        uVar5 = *(undefined4 *)(iVar9 + 0x10);
        *(undefined4 *)(iVar6 + 0xa4) = uVar3;
        *(undefined4 *)(iVar6 + 0xa8) = uVar5;
        ppiVar13 = ppiVar12 + -1;
      }
    }
  }
  else {
    apiStack_60[0] = (int *)0x0;
    apiStack_60[2] = &DAT_0038f378;
    uVar5 = FUN_00174930(param_1 + 8,param_4,1);
    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);
    ppiVar13 = apiStack_60 + 1;
    apiStack_60[1] = apiStack_60[2];
  }
LAB_000ae6f0:
  piVar10 = (int *)ppiVar13[0x18][1];
  piVar11 = *(int **)(*apiStack_60[1] + 8);
  ppiVar13[1] = piVar10;
  bVar8 = *(byte *)(piVar10 + 0x2b);
  uVar17 = (uint)bVar8;
  if (bVar8 != 0) {
    if (piVar11 == (int *)0x0) goto LAB_000aeb68;
    goto LAB_000ae822;
  }
  if (piVar11 == (int *)0x0) {
LAB_000aeb68:
    ppiVar13[0xffffffff] = (int *)uVar17;
    ppiVar13[0xfffffffe] = (int *)"options";
    ppiVar13[0xfffffffd] = (int *)0x5c;
    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";
                    /* WARNING: Subroutine does not return */
    ppiVar13[0xfffffffb] = (int *)0xaeb7e;
    FUN_00069d00();
  }
  bVar20 = false;
  bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';
  if (!bVar23) goto LAB_000aea50;
  iVar9 = 7;
  pbVar15 = (byte *)".ctors.";
  pbVar18 = (byte *)ppiVar13[0x1b];
  do {
    if (iVar9 == 0) break;
    iVar9 = iVar9 + -1;
    bVar20 = *pbVar15 < *pbVar18;
    bVar23 = *pbVar15 == *pbVar18;
    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
  } while (bVar23);
  bVar21 = false;
  bVar20 = (!bVar20 && !bVar23) == bVar20;
  if (bVar20) {
LAB_000ae7d8:
    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;
    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);
    uVar17 = (uint)bVar8;
    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {
LAB_000aeb99:
      if (bVar8 != 0) goto LAB_000ae822;
      goto LAB_000aea5d;
    }
    if (bVar8 != 0) goto LAB_000ae822;
LAB_000ae7fd:
    cVar4 = *(char *)((int)piVar11 + 0x318d);
    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;
    if (cVar4 == '\0') {
      ppiVar13[3] = piVar11;
      ppuVar16 = &PTR_s__text_unlikely_003837a0;
      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;
      pcVar19 = ".text.unlikely";
      sVar7 = 0xe;
      while( true ) {
        ppiVar13[0xfffffffe] = (int *)sVar7;
        ppiVar13[0xfffffffd] = ppiVar13[0x1b];
        ppiVar13[0xfffffffc] = (int *)pcVar19;
        ppiVar13[0xfffffffb] = (int *)0xaebdd;
        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],
                        (size_t)ppiVar13[0xfffffffe]);
        if (iVar9 == 0) break;
        ppuVar16 = ppuVar16 + 1;
        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;
        pcVar19 = *ppuVar16;
        ppiVar13[0xfffffffc] = (int *)pcVar19;
        ppiVar13[0xfffffffb] = (int *)0xaebfc;
        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);
      }
      piVar11 = ppiVar13[3];
      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;
      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);
      uVar17 = (uint)bVar8;
      goto LAB_000aeb99;
    }
  }
  else {
    iVar9 = 7;
    pbVar15 = (byte *)".dtors.";
    pbVar18 = (byte *)ppiVar13[0x1b];
    do {
      if (iVar9 == 0) break;
      iVar9 = iVar9 + -1;
      bVar21 = *pbVar15 < *pbVar18;
      bVar20 = *pbVar15 == *pbVar18;
      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
    } while (bVar20);
    bVar23 = false;
    bVar20 = (!bVar21 && !bVar20) == bVar21;
    if (bVar20) goto LAB_000ae7d8;
    iVar9 = 0xc;
    pbVar15 = (byte *)".init_array.";
    pbVar18 = (byte *)ppiVar13[0x1b];
    do {
      if (iVar9 == 0) break;
      iVar9 = iVar9 + -1;
      bVar23 = *pbVar15 < *pbVar18;
      bVar20 = *pbVar15 == *pbVar18;
      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
    } while (bVar20);
    bVar21 = false;
    bVar20 = (!bVar23 && !bVar20) == bVar23;
    if (bVar20) goto LAB_000ae7d8;
    iVar9 = 0xc;
    pbVar15 = (byte *)".fini_array.";
    pbVar18 = (byte *)ppiVar13[0x1b];
    do {
      if (iVar9 == 0) break;
      iVar9 = iVar9 + -1;
      bVar21 = *pbVar15 < *pbVar18;
      bVar20 = *pbVar15 == *pbVar18;
      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
    } while (bVar20);
    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;
    bVar20 = false;
    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';
    if (!bVar23) {
      iVar9 = 7;
      pbVar15 = (byte *)ppiVar13[0x1b];
      pbVar18 = (byte *)".ctors";
      do {
        if (iVar9 == 0) break;
        iVar9 = iVar9 + -1;
        bVar20 = *pbVar15 < *pbVar18;
        bVar23 = *pbVar15 == *pbVar18;
        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
      } while (bVar23);
      bVar21 = false;
      bVar20 = (!bVar20 && !bVar23) == bVar20;
      if (!bVar20) {
        iVar9 = 7;
        pbVar15 = (byte *)ppiVar13[0x1b];
        pbVar18 = (byte *)".dtors";
        do {
          if (iVar9 == 0) break;
          iVar9 = iVar9 + -1;
          bVar21 = *pbVar15 < *pbVar18;
          bVar20 = *pbVar15 == *pbVar18;
          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
        } while (bVar20);
        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;
      }
      goto LAB_000ae7d8;
    }
LAB_000aea50:
    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;
LAB_000aea5d:
    cVar4 = *(char *)((int)piVar11 + 0x318d);
LAB_000aea64:
    if (cVar4 == '\0') {
LAB_000aea6c:
      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);
      bVar20 = uVar17 < 4;
      bVar23 = uVar17 == 4;
      if (4 < uVar17) {
        iVar9 = 7;
        pbVar15 = (byte *)ppiVar13[0x1b];
        pbVar18 = (byte *)".ctors";
        do {
          if (iVar9 == 0) break;
          iVar9 = iVar9 + -1;
          bVar20 = *pbVar15 < *pbVar18;
          bVar23 = *pbVar15 == *pbVar18;
          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
        } while (bVar23);
        bVar21 = false;
        bVar20 = (!bVar20 && !bVar23) == bVar20;
        if (bVar20) {
LAB_000aeab0:
          bVar23 = false;
          iVar9 = 0xc;
          pbVar15 = *(byte **)(iVar6 + 0x20);
          pbVar18 = (byte *)".init_array";
          do {
            if (iVar9 == 0) break;
            iVar9 = iVar9 + -1;
            bVar23 = *pbVar15 < *pbVar18;
            bVar20 = *pbVar15 == *pbVar18;
            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          } while (bVar20);
          bVar20 = (!bVar23 && !bVar20) == bVar23;
          if (!bVar20) goto LAB_000aeb18;
        }
        else {
          iVar9 = 7;
          pbVar15 = (byte *)".ctors.";
          pbVar18 = (byte *)ppiVar13[0x1b];
          do {
            if (iVar9 == 0) break;
            iVar9 = iVar9 + -1;
            bVar21 = *pbVar15 < *pbVar18;
            bVar20 = *pbVar15 == *pbVar18;
            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          } while (bVar20);
          bVar20 = (!bVar21 && !bVar20) == bVar21;
          if (bVar20) goto LAB_000aeab0;
LAB_000aeb18:
          bVar23 = false;
          iVar9 = 7;
          pbVar15 = (byte *)ppiVar13[0x1b];
          pbVar18 = (byte *)".dtors";
          do {
            if (iVar9 == 0) break;
            iVar9 = iVar9 + -1;
            bVar23 = *pbVar15 < *pbVar18;
            bVar20 = *pbVar15 == *pbVar18;
            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          } while (bVar20);
          bVar21 = false;
          bVar20 = (!bVar23 && !bVar20) == bVar23;
          if (!bVar20) {
            iVar9 = 7;
            pbVar15 = (byte *)".dtors.";
            pbVar18 = (byte *)ppiVar13[0x1b];
            do {
              if (iVar9 == 0) break;
              iVar9 = iVar9 + -1;
              bVar21 = *pbVar15 < *pbVar18;
              bVar20 = *pbVar15 == *pbVar18;
              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
            } while (bVar20);
            bVar20 = (!bVar21 && !bVar20) == bVar21;
            if (!bVar20) goto LAB_000ae820;
          }
          bVar23 = false;
          iVar9 = 0xc;
          pbVar15 = *(byte **)(iVar6 + 0x20);
          pbVar18 = (byte *)".fini_array";
          do {
            if (iVar9 == 0) break;
            iVar9 = iVar9 + -1;
            bVar23 = *pbVar15 < *pbVar18;
            bVar20 = *pbVar15 == *pbVar18;
            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          } while (bVar20);
          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;
        }
        ppiVar13[10] = ppiVar13[0x19];
        ppiVar13[0xb] = ppiVar13[0x1a];
        ppiVar13[9] = &DAT_0038f4c4;
        ppiVar13[0xfffffffd] = (int *)0x1;
        ppiVar13[0xfffffffc] = (int *)0x0;
        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);
        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);
        ppiVar13[0xfffffff9] = &DAT_0038f4c4;
        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);
        ppiVar13[0xfffffff7] = (int *)0xaeaff;
        FUN_000ae400();
        ppiVar12 = ppiVar13 + 0x17;
        ppiVar13 = ppiVar13 + 0xffffffff;
        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);
        goto LAB_000ae822;
      }
    }
  }
LAB_000ae820:
  uVar17 = 0;
LAB_000ae822:
  uVar1 = *(uint *)(iVar6 + 0x54);
  *(uint *)((int)ppiVar13 + -4) = uVar17;
  *(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);
  *(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);
  *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);
  *(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);
  *(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);
  *(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);
  *(int *)((int)ppiVar13 + -0x20) = iVar6;
  *(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;
  uVar26 = FUN_00125670();
  **(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;
  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {
    *(undefined4 *)((int)ppiVar13 + -8) = 0;
    *(int *)((int)ppiVar13 + -0xc) = iVar6;
    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);
    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;
    uVar5 = FUN_00097200();
    *(undefined4 *)(iVar6 + 0x5c) = uVar5;
  }
  *(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;
  return iVar6;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x2e0a87
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 0x000a7190
ADD ESP,0x10
TEST AL,AL
JZ 0x000ae9bf
LEA EDX,[EBX + 0x378]
MOV EAX,dword ptr [EDX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000aeb68
CMP byte ptr [EAX + 0x318d],0x0
JZ 0x000ae5e7
MOV EDI,dword ptr [ESP + 0x70]
MOV ECX,dword ptr [EDI]
MOV ESI,dword ptr [ECX + 0x8]
TEST ESI,0x200
JNZ 0x000ae9f8
CMP byte ptr [EAX + 0x5871],0x0
LEA EBP,[ESP + 0x28]
JNZ 0x000ae890
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
JZ 0x000ae970
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EDX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000aec2b
MOV EDI,ECX
AND EDI,0xfffff50f
CMP byte ptr [EAX + 0x318d],0x0
JZ 0x000ae670
MOV EDI,ECX
AND EDI,0xfffff58f
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 0x000ae6f0
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
LEA ESI,[ESI]
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 0x000aeb60
TEST EDX,EDX
JZ 0x000aeb68
CMP byte ptr [EDX + 0x318d],0x0
JNZ 0x000aea50
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 0x000ae7d8
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 0x000ae7d8
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 0x000ae7d8
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 0x000ae7d8
CMP byte ptr [EDX + 0xad5],0x0
JZ 0x000aea50
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 0x000ae7d8
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 0x000aea50
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 0x000aeb99
TEST AL,AL
JNZ 0x000ae822
MOV EDI,dword ptr [ESP + 0x60]
MOVZX EAX,byte ptr [EDX + 0x318d]
CMP byte ptr [EDI + 0x1cd],0x0
JNZ 0x000aea64
TEST AL,AL
JZ 0x000aebb0
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 0x00125670
MOV EDI,dword ptr [ESP + 0xa0]
ADD ESP,0x20
MOV dword ptr [EDI],EAX
MOV dword ptr [EDI + 0x4],EDX
TEST ESI,0x2
JZ 0x000ae878
XOR ESI,dword ptr [EBP + 0x54]
AND ESI,0x5
JZ 0x000ae878
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 0x000ae9d0
CMP EAX,ECX
JZ 0x000ae8f1
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EDX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000aec2b
MOV ESI,ECX
AND ESI,0xfffff50f
CMP byte ptr [EAX + 0x318d],0x0
JZ 0x000ae920
AND ECX,0xfffff58f
MOV ESI,ECX
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 0x000ae6f0
SUB ESP,0x4
XOR EDI,EDI
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x1
MOV EAX,dword ptr [ESP + 0x88]
MOV EAX,dword ptr [EAX]
MOV ESI,dword ptr [EAX + 0x8]
PUSH EDI
PUSH ESI
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 0x000ae6f0
ADD ESP,0x4c
XOR EBP,EBP
POP EBX
MOV EAX,EBP
POP ESI
POP EDI
POP EBP
RET
CMP EAX,ECX
JZ 0x000ae5f8
MOV dword ptr [ESP + 0x4],EDX
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4]
JMP 0x000ae5f8
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 0x000ae6f0
CMP byte ptr [EDX + 0x3ced],0x0
JNZ 0x000ae7fd
MOVZX EAX,byte ptr [EDX + 0x318d]
TEST AL,AL
JNZ 0x000ae820
MOV EAX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [EAX]
CMP dword ptr [EAX + 0x14],0x4
JBE 0x000ae820
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 0x000aeab0
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 0x000aeb18
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 0x000aeb18
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 0x000ae822
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 0x000aec08
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 0x000aeac9
JMP 0x000ae820
TEST EDX,EDX
JNZ 0x000ae822
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 0x000aea5d
JMP 0x000ae822
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 0x000aeb80
ADD ESI,0x4
CMP dword ptr [ESP + 0x8],ESI
JZ 0x000aea6c
MOV EDI,dword ptr [ESI]
SUB ESP,0xc
PUSH EDI
CALL 0x000295f0
ADD ESP,0x10
JMP 0x000aebcf
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 0x000aeb36
JMP 0x000ae820
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_000ae570(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  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  size_t sVar7;\n  byte bVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int **ppiVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  byte *pbVar15;\n  undefined **ppuVar16;\n  uint uVar17;\n  byte *pbVar18;\n  char *pcVar19;\n  bool bVar20;\n  bool bVar21;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  byte bVar25;\n  undefined8 uVar26;\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  bVar25 = 0;\n  uStack_14 = 0xae579;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar4 = FUN_000a7190(param_1,param_2,param_4);\n  ppiVar13 = apiStack_60 + 1;\n  ppiVar12 = apiStack_60 + 1;\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  uVar17 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar17 == 0) goto LAB_000aeb68;\n  if ((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }\n  else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000ae6f0:\n  piVar10 = (int *)ppiVar13[0x18][1];\n  piVar11 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar13[1] = piVar10;\n  bVar8 = *(byte *)(piVar10 + 0x2b);\n  uVar17 = (uint)bVar8;\n  if (bVar8 != 0) {\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }\n  if (piVar11 == (int *)0x0) {\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }\n  bVar20 = false;\n  bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';\n  if (!bVar23) goto LAB_000aea50;\n  iVar9 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar18 = (byte *)ppiVar13[0x1b];\n  do {\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar23) == bVar20;\n  if (bVar20) {\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }\nLAB_000ae820:\n  uVar17 = 0;\nLAB_000ae822:\n  uVar1 = *(uint *)(iVar6 + 0x54);\n  *(uint *)((int)ppiVar13 + -4) = uVar17;\n  *(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);\n  *(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);\n  *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);\n  *(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);\n  *(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);\n  *(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);\n  *(int *)((int)ppiVar13 + -0x20) = iVar6;\n  *(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;\n  uVar26 = FUN_00125670();\n  **(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;\n  return iVar6;\n}\n\n" comment comment (function_definition "int FUN_000ae570(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  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  size_t sVar7;\n  byte bVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int **ppiVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  byte *pbVar15;\n  undefined **ppuVar16;\n  uint uVar17;\n  byte *pbVar18;\n  char *pcVar19;\n  bool bVar20;\n  bool bVar21;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  byte bVar25;\n  undefined8 uVar26;\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  bVar25 = 0;\n  uStack_14 = 0xae579;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar4 = FUN_000a7190(param_1,param_2,param_4);\n  ppiVar13 = apiStack_60 + 1;\n  ppiVar12 = apiStack_60 + 1;\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  uVar17 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar17 == 0) goto LAB_000aeb68;\n  if ((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }\n  else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000ae6f0:\n  piVar10 = (int *)ppiVar13[0x18][1];\n  piVar11 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar13[1] = piVar10;\n  bVar8 = *(byte *)(piVar10 + 0x2b);\n  uVar17 = (uint)bVar8;\n  if (bVar8 != 0) {\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }\n  if (piVar11 == (int *)0x0) {\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }\n  bVar20 = false;\n  bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';\n  if (!bVar23) goto LAB_000aea50;\n  iVar9 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar18 = (byte *)ppiVar13[0x1b];\n  do {\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar23) == bVar20;\n  if (bVar20) {\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }\nLAB_000ae820:\n  uVar17 = 0;\nLAB_000ae822:\n  uVar1 = *(uint *)(iVar6 + 0x54);\n  *(uint *)((int)ppiVar13 + -4) = uVar17;\n  *(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);\n  *(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);\n  *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);\n  *(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);\n  *(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);\n  *(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);\n  *(int *)((int)ppiVar13 + -0x20) = iVar6;\n  *(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;\n  uVar26 = FUN_00125670();\n  **(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;\n  return iVar6;\n}" primitive_type (function_declarator "FUN_000ae570(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  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  size_t sVar7;\n  byte bVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int **ppiVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  byte *pbVar15;\n  undefined **ppuVar16;\n  uint uVar17;\n  byte *pbVar18;\n  char *pcVar19;\n  bool bVar20;\n  bool bVar21;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  byte bVar25;\n  undefined8 uVar26;\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  bVar25 = 0;\n  uStack_14 = 0xae579;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar4 = FUN_000a7190(param_1,param_2,param_4);\n  ppiVar13 = apiStack_60 + 1;\n  ppiVar12 = apiStack_60 + 1;\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  uVar17 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar17 == 0) goto LAB_000aeb68;\n  if ((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }\n  else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000ae6f0:\n  piVar10 = (int *)ppiVar13[0x18][1];\n  piVar11 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar13[1] = piVar10;\n  bVar8 = *(byte *)(piVar10 + 0x2b);\n  uVar17 = (uint)bVar8;\n  if (bVar8 != 0) {\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }\n  if (piVar11 == (int *)0x0) {\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }\n  bVar20 = false;\n  bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';\n  if (!bVar23) goto LAB_000aea50;\n  iVar9 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar18 = (byte *)ppiVar13[0x1b];\n  do {\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar23) == bVar20;\n  if (bVar20) {\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }\nLAB_000ae820:\n  uVar17 = 0;\nLAB_000ae822:\n  uVar1 = *(uint *)(iVar6 + 0x54);\n  *(uint *)((int)ppiVar13 + -4) = uVar17;\n  *(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);\n  *(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);\n  *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);\n  *(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);\n  *(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);\n  *(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);\n  *(int *)((int)ppiVar13 + -0x20) = iVar6;\n  *(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;\n  uVar26 = FUN_00125670();\n  **(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;\n  return iVar6;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int **ppiVar12;" primitive_type (pointer_declarator "**ppiVar12" * (pointer_declarator "*ppiVar12" * identifier)) ;) (declaration "int **ppiVar13;" primitive_type (pointer_declarator "**ppiVar13" * (pointer_declarator "*ppiVar13" * identifier)) ;) (declaration "int **ppiVar14;" primitive_type (pointer_declarator "**ppiVar14" * (pointer_declarator "*ppiVar14" * identifier)) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "undefined **ppuVar16;" type_identifier (pointer_declarator "**ppuVar16" * (pointer_declarator "*ppuVar16" * identifier)) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "undefined1 uVar22;" type_identifier identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "undefined8 uVar26;" 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 "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xae579;" (assignment_expression "uStack_14 = 0xae579" 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 "cVar4 = FUN_000a7190(param_1,param_2,param_4);" (assignment_expression "cVar4 = FUN_000a7190(param_1,param_2,param_4)" identifier = (call_expression "FUN_000a7190(param_1,param_2,param_4)" identifier (argument_list "(param_1,param_2,param_4)" ( identifier , identifier , identifier )))) ;) (expression_statement "ppiVar13 = apiStack_60 + 1;" (assignment_expression "ppiVar13 = apiStack_60 + 1" identifier = (binary_expression "apiStack_60 + 1" identifier + number_literal)) ;) (expression_statement "ppiVar12 = apiStack_60 + 1;" (assignment_expression "ppiVar12 = apiStack_60 + 1" identifier = (binary_expression "apiStack_60 + 1" identifier + number_literal)) ;) (if_statement "if (cVar4 == '\0') {\n    return 0;\n  }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar17 = *(uint *)(DAT_0038f378 + 8);" (assignment_expression "uVar17 = *(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 (uVar17 == 0) goto LAB_000aeb68;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000aeb68;" goto statement_identifier ;)) (if_statement "if ((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }\n  else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" if (parenthesized_expression "((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0))" ( (binary_expression "(*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)" (parenthesized_expression "(*(char *)(uVar17 + 0x318d) == '\0')" ( (binary_expression "*(char *)(uVar17 + 0x318d) == '\0'" (pointer_expression "*(char *)(uVar17 + 0x318d)" * (cast_expression "(char *)(uVar17 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar17 + 0x318d)" ( (binary_expression "uVar17 + 0x318d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)" ( (comma_expression "uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0" (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) ))))) , (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }" { (expression_statement "piVar10 = &DAT_0038f378;" (assignment_expression "piVar10 = &DAT_0038f378" identifier = (pointer_expression "&DAT_0038f378" & identifier)) ;) (if_statement "if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }" if (parenthesized_expression "(*(char *)(uVar17 + 0x5871) != '\0')" ( (binary_expression "*(char *)(uVar17 + 0x5871) != '\0'" (pointer_expression "*(char *)(uVar17 + 0x5871)" * (cast_expression "(char *)(uVar17 + 0x5871)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar17 + 0x5871)" ( (binary_expression "uVar17 + 0x5871" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }" { (expression_statement "uVar22 = apiStack_60 + 1 < (int **)0x4;" (assignment_expression "uVar22 = 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 "uVar24 = &stack0x00000000 == (undefined1 *)0x60;" (assignment_expression "uVar24 = &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 "iVar6 = 0xe;" (assignment_expression "iVar6 = 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 "pbVar15 = (byte *)".text.unlikely";" (assignment_expression "pbVar15 = (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 "pbVar18 = (byte *)local_40[2];" (assignment_expression "pbVar18 = (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 (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);" do (compound_statement "{\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar22 = *pbVar15 < *pbVar18;" (assignment_expression "uVar22 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "uVar24 = *pbVar15 == *pbVar18;" (assignment_expression "uVar24 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "ppiVar12 = apiStack_60;" (assignment_expression "ppiVar12 = apiStack_60" identifier = identifier) ;) (if_statement "if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }" if (parenthesized_expression "((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22)" ( (binary_expression "(!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22" (parenthesized_expression "(!(bool)uVar22 && !(bool)uVar24)" ( (binary_expression "!(bool)uVar22 && !(bool)uVar24" (unary_expression "!(bool)uVar22" ! (cast_expression "(bool)uVar22" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar22" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\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 "ppiVar14 = apiStack_60;" (assignment_expression "ppiVar14 = apiStack_60" identifier = identifier) ;) (if_statement "if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;" 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_000aec2b;" goto statement_identifier ;)) (expression_statement "uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;" (assignment_expression "uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f" identifier = (binary_expression "*(uint *)(*param_4 + 8) & 0xfffff50f" (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) )))) & number_literal)) ;) (if_statement "if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 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          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }" { (expression_statement "uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;" (assignment_expression "uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f" identifier = (binary_expression "*(uint *)(*param_4 + 8) & 0xfffff58f" (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) )))) & number_literal)) ;) })) (expression_statement "uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);" (assignment_expression "uVar5 = 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 "iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);" (assignment_expression "iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0)" identifier = (call_expression "FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0)" identifier (argument_list "(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0)" ( identifier , identifier , (subscript_expression "local_40[2]" identifier [ number_literal ]) , identifier , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "ppiVar13 = apiStack_60;" (assignment_expression "ppiVar13 = apiStack_60" identifier = identifier) ;) (expression_statement "*(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;" (assignment_expression "*(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar6 + 0x92)" * (cast_expression "(byte *)(iVar6 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x92)" ( (binary_expression "iVar6 + 0x92" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar6 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar6 + 0x92)" * (cast_expression "(byte *)(iVar6 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x92)" ( (binary_expression "iVar6 + 0x92" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_000ae6f0;" goto statement_identifier ;) })) (expression_statement "piVar10 = apiStack_60[1];" (assignment_expression "piVar10 = 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        ppiVar12 = apiStack_60;\n        piVar10 = 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        ppiVar12 = apiStack_60;\n        piVar10 = 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 "ppiVar12 = apiStack_60;" (assignment_expression "ppiVar12 = apiStack_60" identifier = identifier) ;) (expression_statement "piVar10 = apiStack_60[1];" (assignment_expression "piVar10 = apiStack_60[1]" identifier = (subscript_expression "apiStack_60[1]" identifier [ number_literal ])) ;) })) })) (expression_statement "ppiVar12[1] = piVar10;" (assignment_expression "ppiVar12[1] = piVar10" (subscript_expression "ppiVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppiVar12[10] = ppiVar12[0x19];" (assignment_expression "ppiVar12[10] = ppiVar12[0x19]" (subscript_expression "ppiVar12[10]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x19]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[0xb] = ppiVar12[0x1a];" (assignment_expression "ppiVar12[0xb] = ppiVar12[0x1a]" (subscript_expression "ppiVar12[0xb]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x1a]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-2] = (int *)local_34;" (assignment_expression "ppiVar12[-2] = (int *)local_34" (subscript_expression "ppiVar12[-2]" identifier [ number_literal ]) = (cast_expression "(int *)local_34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar12[-3] = ppiVar12[0x18] + 0x81;" (assignment_expression "ppiVar12[-3] = ppiVar12[0x18] + 0x81" (subscript_expression "ppiVar12[-3]" identifier [ number_literal ]) = (binary_expression "ppiVar12[0x18] + 0x81" (subscript_expression "ppiVar12[0x18]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "ppiVar12[-4] = (int *)(ppiVar12 + 7);" (assignment_expression "ppiVar12[-4] = (int *)(ppiVar12 + 7)" (subscript_expression "ppiVar12[-4]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar12 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar12 + 7)" ( (binary_expression "ppiVar12 + 7" identifier + number_literal) )))) ;) (expression_statement "ppiVar12[-5] = (int *)0xae625;" (assignment_expression "ppiVar12[-5] = (int *)0xae625" (subscript_expression "ppiVar12[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0xae625" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_000a9000();" (call_expression "FUN_000a9000()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar10 = ppiVar12[6];" (assignment_expression "piVar10 = ppiVar12[6]" identifier = (subscript_expression "ppiVar12[6]" identifier [ number_literal ])) ;) (expression_statement "ppiVar14 = ppiVar12 + -1;" (assignment_expression "ppiVar14 = ppiVar12 + -1" identifier = (binary_expression "ppiVar12 + -1" identifier + number_literal)) ;) (if_statement "if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }" if (parenthesized_expression "(piVar10 == ppiVar12[0x17] + 0x82)" ( (binary_expression "piVar10 == ppiVar12[0x17] + 0x82" identifier == (binary_expression "ppiVar12[0x17] + 0x82" (subscript_expression "ppiVar12[0x17]" identifier [ number_literal ]) + number_literal)) )) (compound_statement "{\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "ppiVar12[-3] = (int *)0x1;" (assignment_expression "ppiVar12[-3] = (int *)0x1" (subscript_expression "ppiVar12[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-4] = (int *)0x0;" (assignment_expression "ppiVar12[-4] = (int *)0x0" (subscript_expression "ppiVar12[-4]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-5] = (int *)0x0;" (assignment_expression "ppiVar12[-5] = (int *)0x0" (subscript_expression "ppiVar12[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-6] = (int *)0x0;" (assignment_expression "ppiVar12[-6] = (int *)0x0" (subscript_expression "ppiVar12[-6]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-7] = (int *)0x1;" (assignment_expression "ppiVar12[-7] = (int *)0x1" (subscript_expression "ppiVar12[-7]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);" (assignment_expression "uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8)" identifier = (pointer_expression "*(undefined4 *)(*ppiVar12[0x1b] + 8)" * (cast_expression "(undefined4 *)(*ppiVar12[0x1b] + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppiVar12[0x1b] + 8)" ( (binary_expression "*ppiVar12[0x1b] + 8" (pointer_expression "*ppiVar12[0x1b]" * (subscript_expression "ppiVar12[0x1b]" identifier [ number_literal ])) + number_literal) ))))) ;) (expression_statement "ppiVar12[-8] = (int *)0x0;" (assignment_expression "ppiVar12[-8] = (int *)0x0" (subscript_expression "ppiVar12[-8]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-9] = (int *)uVar5;" (assignment_expression "ppiVar12[-9] = (int *)uVar5" (subscript_expression "ppiVar12[-9]" identifier [ number_literal ]) = (cast_expression "(int *)uVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar12[-10] = ppiVar12[0x1c];" (assignment_expression "ppiVar12[-10] = ppiVar12[0x1c]" (subscript_expression "ppiVar12[-10]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x1c]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-0xb] = ppiVar12[0x1a];" (assignment_expression "ppiVar12[-0xb] = ppiVar12[0x1a]" (subscript_expression "ppiVar12[-0xb]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x1a]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-0xc] = ppiVar12[0x18];" (assignment_expression "ppiVar12[-0xc] = ppiVar12[0x18]" (subscript_expression "ppiVar12[-0xc]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x18]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-0xd] = ppiVar12[0x17];" (assignment_expression "ppiVar12[-0xd] = ppiVar12[0x17]" (subscript_expression "ppiVar12[-0xd]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x17]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-0xe] = (int *)0xae9ae;" (assignment_expression "ppiVar12[-0xe] = (int *)0xae9ae" (subscript_expression "ppiVar12[-0xe]" identifier [ number_literal ]) = (cast_expression "(int *)0xae9ae" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = FUN_0009fff0();" (assignment_expression "iVar6 = FUN_0009fff0()" identifier = (call_expression "FUN_0009fff0()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppiVar13 = ppiVar12 + -1;" (assignment_expression "ppiVar13 = ppiVar12 + -1" identifier = (binary_expression "ppiVar12 + -1" identifier + number_literal)) ;) (expression_statement "apiStack_60[1] = *ppiVar12;" (assignment_expression "apiStack_60[1] = *ppiVar12" (subscript_expression "apiStack_60[1]" identifier [ number_literal ]) = (pointer_expression "*ppiVar12" * identifier)) ;) (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }" else (compound_statement "{\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }" { (expression_statement "iVar6 = *(int *)(**ppiVar12 + 8);" (assignment_expression "iVar6 = *(int *)(**ppiVar12 + 8)" identifier = (pointer_expression "*(int *)(**ppiVar12 + 8)" * (cast_expression "(int *)(**ppiVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**ppiVar12 + 8)" ( (binary_expression "**ppiVar12 + 8" (pointer_expression "**ppiVar12" * (pointer_expression "*ppiVar12" * identifier)) + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }" { (labeled_statement "LAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;" statement_identifier : comment (expression_statement "*(code **)((int)ppiVar14 + -4) = FUN_000aec30;" (assignment_expression "*(code **)((int)ppiVar14 + -4) = FUN_000aec30" (pointer_expression "*(code **)((int)ppiVar14 + -4)" * (cast_expression "(code **)((int)ppiVar14 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar14 + -4)" ( (binary_expression "(int)ppiVar14 + -4" (cast_expression "(int)ppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "FUN_00096010();" (call_expression "FUN_00096010()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;" (assignment_expression "uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f" identifier = (binary_expression "*(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f" (pointer_expression "*(uint *)(*ppiVar12[0x1b] + 8)" * (cast_expression "(uint *)(*ppiVar12[0x1b] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppiVar12[0x1b] + 8)" ( (binary_expression "*ppiVar12[0x1b] + 8" (pointer_expression "*ppiVar12[0x1b]" * (subscript_expression "ppiVar12[0x1b]" identifier [ number_literal ])) + number_literal) )))) & number_literal)) ;) (if_statement "if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }" if (parenthesized_expression "(*(char *)(iVar6 + 0x318d) != '\0')" ( (binary_expression "*(char *)(iVar6 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar6 + 0x318d)" * (cast_expression "(char *)(iVar6 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x318d)" ( (binary_expression "iVar6 + 0x318d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }" { (expression_statement "uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;" (assignment_expression "uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f" identifier = (binary_expression "*(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f" (pointer_expression "*(uint *)(*ppiVar12[0x1b] + 8)" * (cast_expression "(uint *)(*ppiVar12[0x1b] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppiVar12[0x1b] + 8)" ( (binary_expression "*ppiVar12[0x1b] + 8" (pointer_expression "*ppiVar12[0x1b]" * (subscript_expression "ppiVar12[0x1b]" identifier [ number_literal ])) + number_literal) )))) & number_literal)) ;) })) (expression_statement "puVar2 = (undefined4 *)piVar10[6];" (assignment_expression "puVar2 = (undefined4 *)piVar10[6]" identifier = (cast_expression "(undefined4 *)piVar10[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[6]" identifier [ number_literal ]))) ;) (expression_statement "*ppiVar12 = *ppiVar12;" (assignment_expression "*ppiVar12 = *ppiVar12" (pointer_expression "*ppiVar12" * identifier) = (pointer_expression "*ppiVar12" * identifier)) ;) (expression_statement "ppiVar12[-2] = (int *)local_34;" (assignment_expression "ppiVar12[-2] = (int *)local_34" (subscript_expression "ppiVar12[-2]" identifier [ number_literal ]) = (cast_expression "(int *)local_34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar12[-3] = (int *)0x1;" (assignment_expression "ppiVar12[-3] = (int *)0x1" (subscript_expression "ppiVar12[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-4] = (int *)*puVar2;" (assignment_expression "ppiVar12[-4] = (int *)*puVar2" (subscript_expression "ppiVar12[-4]" identifier [ number_literal ]) = (cast_expression "(int *)*puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "ppiVar12[-5] = ppiVar12[0x17] + 2;" (assignment_expression "ppiVar12[-5] = ppiVar12[0x17] + 2" (subscript_expression "ppiVar12[-5]" identifier [ number_literal ]) = (binary_expression "ppiVar12[0x17] + 2" (subscript_expression "ppiVar12[0x17]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "ppiVar12[-6] = (int *)0xae68b;" (assignment_expression "ppiVar12[-6] = (int *)0xae68b" (subscript_expression "ppiVar12[-6]" identifier [ number_literal ]) = (cast_expression "(int *)0xae68b" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = FUN_00174930();" (assignment_expression "uVar5 = FUN_00174930()" identifier = (call_expression "FUN_00174930()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppiVar12[-2] = (int *)0x0;" (assignment_expression "ppiVar12[-2] = (int *)0x0" (subscript_expression "ppiVar12[-2]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-3] = (int *)0x0;" (assignment_expression "ppiVar12[-3] = (int *)0x0" (subscript_expression "ppiVar12[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-4] = (int *)0x0;" (assignment_expression "ppiVar12[-4] = (int *)0x0" (subscript_expression "ppiVar12[-4]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-5] = (int *)uVar17;" (assignment_expression "ppiVar12[-5] = (int *)uVar17" (subscript_expression "ppiVar12[-5]" identifier [ number_literal ]) = (cast_expression "(int *)uVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar12[-6] = ppiVar12[0x1c];" (assignment_expression "ppiVar12[-6] = ppiVar12[0x1c]" (subscript_expression "ppiVar12[-6]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x1c]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-7] = ppiVar12[9];" (assignment_expression "ppiVar12[-7] = ppiVar12[9]" (subscript_expression "ppiVar12[-7]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[9]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-8] = (int *)uVar5;" (assignment_expression "ppiVar12[-8] = (int *)uVar5" (subscript_expression "ppiVar12[-8]" identifier [ number_literal ]) = (cast_expression "(int *)uVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar12[-9] = ppiVar12[0x17];" (assignment_expression "ppiVar12[-9] = ppiVar12[0x17]" (subscript_expression "ppiVar12[-9]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x17]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-10] = (int *)0xae6a9;" (assignment_expression "ppiVar12[-10] = (int *)0xae6a9" (subscript_expression "ppiVar12[-10]" identifier [ number_literal ]) = (cast_expression "(int *)0xae6a9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = FUN_0009fd60();" (assignment_expression "iVar6 = FUN_0009fd60()" identifier = (call_expression "FUN_0009fd60()" identifier (argument_list "()" ( )))) ;) (expression_statement "apiStack_60[1] = *ppiVar12;" (assignment_expression "apiStack_60[1] = *ppiVar12" (subscript_expression "apiStack_60[1]" identifier [ number_literal ]) = (pointer_expression "*ppiVar12" * identifier)) ;) (expression_statement "ppiVar13 = ppiVar12 + -1;" (assignment_expression "ppiVar13 = ppiVar12 + -1" identifier = (binary_expression "ppiVar12 + -1" identifier + number_literal)) ;) (if_statement "if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }" if (parenthesized_expression "(-1 < (char)*(byte *)(iVar6 + 0x92))" ( (binary_expression "-1 < (char)*(byte *)(iVar6 + 0x92)" number_literal < (cast_expression "(char)*(byte *)(iVar6 + 0x92)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(iVar6 + 0x92)" * (cast_expression "(byte *)(iVar6 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x92)" ( (binary_expression "iVar6 + 0x92" identifier + number_literal) )))))) )) (compound_statement "{\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }" { (expression_statement "*(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;" (assignment_expression "*(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar6 + 0x92)" * (cast_expression "(byte *)(iVar6 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x92)" ( (binary_expression "iVar6 + 0x92" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar6 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar6 + 0x92)" * (cast_expression "(byte *)(iVar6 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x92)" ( (binary_expression "iVar6 + 0x92" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "iVar9 = piVar10[6];" (assignment_expression "iVar9 = piVar10[6]" identifier = (subscript_expression "piVar10[6]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar9 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar9 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 8)" * (cast_expression "(undefined4 *)(iVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);" (assignment_expression "*(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4)" (pointer_expression "*(undefined4 *)(iVar6 + 0x9c)" * (cast_expression "(undefined4 *)(iVar6 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x9c)" ( (binary_expression "iVar6 + 0x9c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar9 + 0xc);" (assignment_expression "uVar3 = *(undefined4 *)(iVar9 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0xc)" * (cast_expression "(undefined4 *)(iVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0xa0) = uVar5;" (assignment_expression "*(undefined4 *)(iVar6 + 0xa0) = uVar5" (pointer_expression "*(undefined4 *)(iVar6 + 0xa0)" * (cast_expression "(undefined4 *)(iVar6 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xa0)" ( (binary_expression "iVar6 + 0xa0" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar9 + 0x10);" (assignment_expression "uVar5 = *(undefined4 *)(iVar9 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x10)" * (cast_expression "(undefined4 *)(iVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0xa4) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0xa4) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0xa4)" * (cast_expression "(undefined4 *)(iVar6 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xa4)" ( (binary_expression "iVar6 + 0xa4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar6 + 0xa8) = uVar5;" (assignment_expression "*(undefined4 *)(iVar6 + 0xa8) = uVar5" (pointer_expression "*(undefined4 *)(iVar6 + 0xa8)" * (cast_expression "(undefined4 *)(iVar6 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xa8)" ( (binary_expression "iVar6 + 0xa8" identifier + number_literal) )))) = identifier) ;) (expression_statement "ppiVar13 = ppiVar12 + -1;" (assignment_expression "ppiVar13 = ppiVar12 + -1" identifier = (binary_expression "ppiVar12 + -1" identifier + number_literal)) ;) })) }))) }) (else_clause "else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" else (compound_statement "{\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" { (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 "uVar5 = FUN_00174930(param_1 + 8,param_4,1);" (assignment_expression "uVar5 = 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 "iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);" (assignment_expression "iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0)" identifier = (call_expression "FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0)" identifier (argument_list "(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0)" ( identifier , identifier , identifier , (binary_expression "uVar1 & 0xfffff7ff" identifier & number_literal) , number_literal , number_literal , number_literal )))) ;) (expression_statement "ppiVar13 = apiStack_60 + 1;" (assignment_expression "ppiVar13 = 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_000ae6f0:\n  piVar10 = (int *)ppiVar13[0x18][1];" statement_identifier : (expression_statement "piVar10 = (int *)ppiVar13[0x18][1];" (assignment_expression "piVar10 = (int *)ppiVar13[0x18][1]" identifier = (cast_expression "(int *)ppiVar13[0x18][1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x18][1]" (subscript_expression "ppiVar13[0x18]" identifier [ number_literal ]) [ number_literal ]))) ;)) (expression_statement "piVar11 = *(int **)(*apiStack_60[1] + 8);" (assignment_expression "piVar11 = *(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 "ppiVar13[1] = piVar10;" (assignment_expression "ppiVar13[1] = piVar10" (subscript_expression "ppiVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar8 = *(byte *)(piVar10 + 0x2b);" (assignment_expression "bVar8 = *(byte *)(piVar10 + 0x2b)" identifier = (pointer_expression "*(byte *)(piVar10 + 0x2b)" * (cast_expression "(byte *)(piVar10 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar10 + 0x2b)" ( (binary_expression "piVar10 + 0x2b" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = (uint)bVar8;" (assignment_expression "uVar17 = (uint)bVar8" identifier = (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar8 != 0) {\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }" { (if_statement "if (piVar11 == (int *)0x0) goto LAB_000aeb68;" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000aeb68;" goto statement_identifier ;)) (goto_statement "goto LAB_000ae822;" goto statement_identifier ;) })) (if_statement "if (piVar11 == (int *)0x0) {\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }" { (labeled_statement "LAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;" statement_identifier : (expression_statement "ppiVar13[0xffffffff] = (int *)uVar17;" (assignment_expression "ppiVar13[0xffffffff] = (int *)uVar17" (subscript_expression "ppiVar13[0xffffffff]" identifier [ number_literal ]) = (cast_expression "(int *)uVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "ppiVar13[0xfffffffe] = (int *)"options";" (assignment_expression "ppiVar13[0xfffffffe] = (int *)"options"" (subscript_expression "ppiVar13[0xfffffffe]" identifier [ number_literal ]) = (cast_expression "(int *)"options"" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (string_literal ""options"" " string_content "))) ;) (expression_statement "ppiVar13[0xfffffffd] = (int *)0x5c;" (assignment_expression "ppiVar13[0xfffffffd] = (int *)0x5c" (subscript_expression "ppiVar13[0xfffffffd]" identifier [ number_literal ]) = (cast_expression "(int *)0x5c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";" (assignment_expression "ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h"" (subscript_expression "ppiVar13[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 "ppiVar13[0xfffffffb] = (int *)0xaeb7e;" (assignment_expression "ppiVar13[0xfffffffb] = (int *)0xaeb7e" (subscript_expression "ppiVar13[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)0xaeb7e" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';" (assignment_expression "bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0'" identifier = (binary_expression "*(char *)((int)piVar11 + 0x318d) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x318d)" * (cast_expression "(char *)((int)piVar11 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x318d)" ( (binary_expression "(int)piVar11 + 0x318d" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar23) goto LAB_000aea50;" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (goto_statement "goto LAB_000aea50;" goto statement_identifier ;)) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".ctors.";" (assignment_expression "pbVar15 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  } while (bVar23);" do (compound_statement "{\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar15 < *pbVar18;" (assignment_expression "bVar20 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar23 = *pbVar15 == *pbVar18;" (assignment_expression "bVar23 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar20 && !bVar23) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar23) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar23) == bVar20" (parenthesized_expression "(!bVar20 && !bVar23)" ( (binary_expression "!bVar20 && !bVar23" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) {\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }" { (labeled_statement "LAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;" statement_identifier : (expression_statement "*(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;" (assignment_expression "*(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8" (pointer_expression "*(byte *)(iVar6 + 0x91)" * (cast_expression "(byte *)(iVar6 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x91)" ( (binary_expression "iVar6 + 0x91" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar6 + 0x91) | 8" (pointer_expression "*(byte *)(iVar6 + 0x91)" * (cast_expression "(byte *)(iVar6 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x91)" ( (binary_expression "iVar6 + 0x91" identifier + number_literal) )))) | number_literal)) ;)) (expression_statement "bVar8 = *(byte *)(ppiVar13[1] + 0x2b);" (assignment_expression "bVar8 = *(byte *)(ppiVar13[1] + 0x2b)" identifier = (pointer_expression "*(byte *)(ppiVar13[1] + 0x2b)" * (cast_expression "(byte *)(ppiVar13[1] + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar13[1] + 0x2b)" ( (binary_expression "ppiVar13[1] + 0x2b" (subscript_expression "ppiVar13[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar17 = (uint)bVar8;" (assignment_expression "uVar17 = (uint)bVar8" identifier = (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }" if (parenthesized_expression "(*(char *)((int)piVar11 + 0x3ced) == '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x3ced) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x3ced)" * (cast_expression "(char *)((int)piVar11 + 0x3ced)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x3ced)" ( (binary_expression "(int)piVar11 + 0x3ced" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }" { (labeled_statement "LAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;" statement_identifier : (if_statement "if (bVar8 != 0) goto LAB_000ae822;" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ae822;" goto statement_identifier ;))) (goto_statement "goto LAB_000aea5d;" goto statement_identifier ;) })) (if_statement "if (bVar8 != 0) goto LAB_000ae822;" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ae822;" goto statement_identifier ;)) (labeled_statement "LAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);" statement_identifier : (expression_statement "cVar4 = *(char *)((int)piVar11 + 0x318d);" (assignment_expression "cVar4 = *(char *)((int)piVar11 + 0x318d)" identifier = (pointer_expression "*(char *)((int)piVar11 + 0x318d)" * (cast_expression "(char *)((int)piVar11 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x318d)" ( (binary_expression "(int)piVar11 + 0x318d" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (if_statement "if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;" if (parenthesized_expression "(*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0')" ( (binary_expression "*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0'" (pointer_expression "*(char *)((int)ppiVar13[0x18] + 0x1cd)" * (cast_expression "(char *)((int)ppiVar13[0x18] + 0x1cd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13[0x18] + 0x1cd)" ( (binary_expression "(int)ppiVar13[0x18] + 0x1cd" (cast_expression "(int)ppiVar13[0x18]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar13[0x18]" identifier [ number_literal ])) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000aea64;" goto statement_identifier ;)) (if_statement "if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }" { (expression_statement "ppiVar13[3] = piVar11;" (assignment_expression "ppiVar13[3] = piVar11" (subscript_expression "ppiVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppuVar16 = &PTR_s__text_unlikely_003837a0;" (assignment_expression "ppuVar16 = &PTR_s__text_unlikely_003837a0" identifier = (pointer_expression "&PTR_s__text_unlikely_003837a0" & identifier)) ;) (expression_statement "ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;" (assignment_expression "ppiVar13[2] = (int *)&PTR_s_aranges_003837b0" (subscript_expression "ppiVar13[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 "pcVar19 = ".text.unlikely";" (assignment_expression "pcVar19 = ".text.unlikely"" identifier = (string_literal "".text.unlikely"" " string_content ")) ;) (expression_statement "sVar7 = 0xe;" (assignment_expression "sVar7 = 0xe" identifier = number_literal) ;) (while_statement "while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }" { (expression_statement "ppiVar13[0xfffffffe] = (int *)sVar7;" (assignment_expression "ppiVar13[0xfffffffe] = (int *)sVar7" (subscript_expression "ppiVar13[0xfffffffe]" identifier [ number_literal ]) = (cast_expression "(int *)sVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar13[0xfffffffd] = ppiVar13[0x1b];" (assignment_expression "ppiVar13[0xfffffffd] = ppiVar13[0x1b]" (subscript_expression "ppiVar13[0xfffffffd]" identifier [ number_literal ]) = (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ])) ;) (expression_statement "ppiVar13[0xfffffffc] = (int *)pcVar19;" (assignment_expression "ppiVar13[0xfffffffc] = (int *)pcVar19" (subscript_expression "ppiVar13[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)pcVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar13[0xfffffffb] = (int *)0xaebdd;" (assignment_expression "ppiVar13[0xfffffffb] = (int *)0xaebdd" (subscript_expression "ppiVar13[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)0xaebdd" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);" (assignment_expression "iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe])" identifier = (call_expression "strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe])" identifier (argument_list "((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe])" ( (cast_expression "(char *)ppiVar13[0xfffffffc]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0xfffffffc]" identifier [ number_literal ])) , (cast_expression "(char *)ppiVar13[0xfffffffd]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0xfffffffd]" identifier [ number_literal ])) , (cast_expression "(size_t)ppiVar13[0xfffffffe]" ( (type_descriptor "size_t" primitive_type) ) (subscript_expression "ppiVar13[0xfffffffe]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "ppuVar16 = ppuVar16 + 1;" (assignment_expression "ppuVar16 = ppuVar16 + 1" identifier = (binary_expression "ppuVar16 + 1" identifier + number_literal)) ;) (if_statement "if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;" if (parenthesized_expression "((undefined **)ppiVar13[2] == ppuVar16)" ( (binary_expression "(undefined **)ppiVar13[2] == ppuVar16" (cast_expression "(undefined **)ppiVar13[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppiVar13[2]" identifier [ number_literal ])) == identifier) )) (goto_statement "goto LAB_000aea6c;" goto statement_identifier ;)) (expression_statement "pcVar19 = *ppuVar16;" (assignment_expression "pcVar19 = *ppuVar16" identifier = (pointer_expression "*ppuVar16" * identifier)) ;) (expression_statement "ppiVar13[0xfffffffc] = (int *)pcVar19;" (assignment_expression "ppiVar13[0xfffffffc] = (int *)pcVar19" (subscript_expression "ppiVar13[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)pcVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar13[0xfffffffb] = (int *)0xaebfc;" (assignment_expression "ppiVar13[0xfffffffb] = (int *)0xaebfc" (subscript_expression "ppiVar13[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)0xaebfc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar7 = strlen((char *)ppiVar13[0xfffffffc]);" (assignment_expression "sVar7 = strlen((char *)ppiVar13[0xfffffffc])" identifier = (call_expression "strlen((char *)ppiVar13[0xfffffffc])" identifier (argument_list "((char *)ppiVar13[0xfffffffc])" ( (cast_expression "(char *)ppiVar13[0xfffffffc]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0xfffffffc]" identifier [ number_literal ])) )))) ;) })) (expression_statement "piVar11 = ppiVar13[3];" (assignment_expression "piVar11 = ppiVar13[3]" identifier = (subscript_expression "ppiVar13[3]" identifier [ number_literal ])) ;) (expression_statement "*(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;" (assignment_expression "*(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8" (pointer_expression "*(byte *)(iVar6 + 0x91)" * (cast_expression "(byte *)(iVar6 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x91)" ( (binary_expression "iVar6 + 0x91" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar6 + 0x91) | 8" (pointer_expression "*(byte *)(iVar6 + 0x91)" * (cast_expression "(byte *)(iVar6 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x91)" ( (binary_expression "iVar6 + 0x91" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "bVar8 = *(byte *)(ppiVar13[1] + 0x2b);" (assignment_expression "bVar8 = *(byte *)(ppiVar13[1] + 0x2b)" identifier = (pointer_expression "*(byte *)(ppiVar13[1] + 0x2b)" * (cast_expression "(byte *)(ppiVar13[1] + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar13[1] + 0x2b)" ( (binary_expression "ppiVar13[1] + 0x2b" (subscript_expression "ppiVar13[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar17 = (uint)bVar8;" (assignment_expression "uVar17 = (uint)bVar8" identifier = (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_000aeb99;" goto statement_identifier ;) })) }) (else_clause "else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }" else (compound_statement "{\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".dtors.";" (assignment_expression "pbVar15 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);" do (compound_statement "{\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar21 && !bVar20) == bVar21;" (assignment_expression "bVar20 = (!bVar21 && !bVar20) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) goto LAB_000ae7d8;" if (parenthesized_expression "(bVar20)" ( identifier )) (goto_statement "goto LAB_000ae7d8;" goto statement_identifier ;)) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".init_array.";" (assignment_expression "pbVar15 = (byte *)".init_array."" identifier = (cast_expression "(byte *)".init_array."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".init_array."" " string_content "))) ;) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);" do (compound_statement "{\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar15 < *pbVar18;" (assignment_expression "bVar23 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar23 && !bVar20) == bVar23;" (assignment_expression "bVar20 = (!bVar23 && !bVar20) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar20) == bVar23" (parenthesized_expression "(!bVar23 && !bVar20)" ( (binary_expression "!bVar23 && !bVar20" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) goto LAB_000ae7d8;" if (parenthesized_expression "(bVar20)" ( identifier )) (goto_statement "goto LAB_000ae7d8;" goto statement_identifier ;)) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".fini_array.";" (assignment_expression "pbVar15 = (byte *)".fini_array."" identifier = (cast_expression "(byte *)".fini_array."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".fini_array."" " string_content "))) ;) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);" do (compound_statement "{\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;" if (parenthesized_expression "((!bVar21 && !bVar20) == bVar21)" ( (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_000ae7d8;" goto statement_identifier ;)) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';" (assignment_expression "bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0'" identifier = (binary_expression "*(char *)((int)piVar11 + 0xad5) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0xad5)" * (cast_expression "(char *)((int)piVar11 + 0xad5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0xad5)" ( (binary_expression "(int)piVar11 + 0xad5" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar15 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" 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 "))) ;) (do_statement "do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);" do (compound_statement "{\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar15 < *pbVar18;" (assignment_expression "bVar20 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar23 = *pbVar15 == *pbVar18;" (assignment_expression "bVar23 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar20 && !bVar23) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar23) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar23) == bVar20" (parenthesized_expression "(!bVar20 && !bVar23)" ( (binary_expression "!bVar20 && !bVar23" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }" if (parenthesized_expression "(!bVar20)" ( (unary_expression "!bVar20" ! identifier) )) (compound_statement "{\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar15 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" 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 "))) ;) (do_statement "do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);" do (compound_statement "{\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;" if (parenthesized_expression "((!bVar21 && !bVar20) != bVar21)" ( (binary_expression "(!bVar21 && !bVar20) != bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000aea50;" goto statement_identifier ;)) })) (goto_statement "goto LAB_000ae7d8;" goto statement_identifier ;) })) (labeled_statement "LAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;" statement_identifier : (if_statement "if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;" if (parenthesized_expression "(*(char *)((int)piVar11 + 0x3ced) != '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x3ced) != '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x3ced)" * (cast_expression "(char *)((int)piVar11 + 0x3ced)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x3ced)" ( (binary_expression "(int)piVar11 + 0x3ced" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ae7fd;" goto statement_identifier ;))) (labeled_statement "LAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);" statement_identifier : (expression_statement "cVar4 = *(char *)((int)piVar11 + 0x318d);" (assignment_expression "cVar4 = *(char *)((int)piVar11 + 0x318d)" identifier = (pointer_expression "*(char *)((int)piVar11 + 0x318d)" * (cast_expression "(char *)((int)piVar11 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x318d)" ( (binary_expression "(int)piVar11 + 0x318d" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (labeled_statement "LAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }" statement_identifier : (if_statement "if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }" { (labeled_statement "LAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);" statement_identifier : (expression_statement "uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);" (assignment_expression "uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14)" identifier = (pointer_expression "*(uint *)(*ppiVar13[0x1c] + 0x14)" * (cast_expression "(uint *)(*ppiVar13[0x1c] + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppiVar13[0x1c] + 0x14)" ( (binary_expression "*ppiVar13[0x1c] + 0x14" (pointer_expression "*ppiVar13[0x1c]" * (subscript_expression "ppiVar13[0x1c]" identifier [ number_literal ])) + number_literal) ))))) ;)) (expression_statement "bVar20 = uVar17 < 4;" (assignment_expression "bVar20 = uVar17 < 4" identifier = (binary_expression "uVar17 < 4" identifier < number_literal)) ;) (expression_statement "bVar23 = uVar17 == 4;" (assignment_expression "bVar23 = uVar17 == 4" identifier = (binary_expression "uVar17 == 4" identifier == number_literal)) ;) (if_statement "if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }" if (parenthesized_expression "(4 < uVar17)" ( (binary_expression "4 < uVar17" number_literal < identifier) )) (compound_statement "{\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar15 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" 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 "))) ;) (do_statement "do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);" do (compound_statement "{\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar15 < *pbVar18;" (assignment_expression "bVar20 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar23 = *pbVar15 == *pbVar18;" (assignment_expression "bVar23 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar20 && !bVar23) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar23) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar23) == bVar20" (parenthesized_expression "(!bVar20 && !bVar23)" ( (binary_expression "!bVar20 && !bVar23" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }" { (labeled_statement "LAB_000aeab0:\n          bVar23 = false;" statement_identifier : (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;)) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar15 = *(byte **)(iVar6 + 0x20);" (assignment_expression "pbVar15 = *(byte **)(iVar6 + 0x20)" identifier = (pointer_expression "*(byte **)(iVar6 + 0x20)" * (cast_expression "(byte **)(iVar6 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" 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 "))) ;) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);" do (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar15 < *pbVar18;" (assignment_expression "bVar23 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar20 = (!bVar23 && !bVar20) == bVar23;" (assignment_expression "bVar20 = (!bVar23 && !bVar20) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar20) == bVar23" (parenthesized_expression "(!bVar23 && !bVar20)" ( (binary_expression "!bVar23 && !bVar20" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar20) goto LAB_000aeb18;" if (parenthesized_expression "(!bVar20)" ( (unary_expression "!bVar20" ! identifier) )) (goto_statement "goto LAB_000aeb18;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }" else (compound_statement "{\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".ctors.";" (assignment_expression "pbVar15 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);" do (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar20 = (!bVar21 && !bVar20) == bVar21;" (assignment_expression "bVar20 = (!bVar21 && !bVar20) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) goto LAB_000aeab0;" if (parenthesized_expression "(bVar20)" ( identifier )) (goto_statement "goto LAB_000aeab0;" goto statement_identifier ;)) (labeled_statement "LAB_000aeb18:\n          bVar23 = false;" statement_identifier : (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;)) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar15 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" 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 "))) ;) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);" do (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar15 < *pbVar18;" (assignment_expression "bVar23 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar23 && !bVar20) == bVar23;" (assignment_expression "bVar20 = (!bVar23 && !bVar20) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar20) == bVar23" (parenthesized_expression "(!bVar23 && !bVar20)" ( (binary_expression "!bVar23 && !bVar20" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }" if (parenthesized_expression "(!bVar20)" ( (unary_expression "!bVar20" ! identifier) )) (compound_statement "{\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".dtors.";" (assignment_expression "pbVar15 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);" do (compound_statement "{\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar20 = (!bVar21 && !bVar20) == bVar21;" (assignment_expression "bVar20 = (!bVar21 && !bVar20) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar20) goto LAB_000ae820;" if (parenthesized_expression "(!bVar20)" ( (unary_expression "!bVar20" ! identifier) )) (goto_statement "goto LAB_000ae820;" goto statement_identifier ;)) })) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar15 = *(byte **)(iVar6 + 0x20);" (assignment_expression "pbVar15 = *(byte **)(iVar6 + 0x20)" identifier = (pointer_expression "*(byte **)(iVar6 + 0x20)" * (cast_expression "(byte **)(iVar6 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" 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 "))) ;) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);" do (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar15 < *pbVar18;" (assignment_expression "bVar23 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;" if (parenthesized_expression "((!bVar23 && !bVar20) != bVar23)" ( (binary_expression "(!bVar23 && !bVar20) != bVar23" (parenthesized_expression "(!bVar23 && !bVar20)" ( (binary_expression "!bVar23 && !bVar20" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000ae820;" goto statement_identifier ;)) }))) (expression_statement "ppiVar13[10] = ppiVar13[0x19];" (assignment_expression "ppiVar13[10] = ppiVar13[0x19]" (subscript_expression "ppiVar13[10]" identifier [ number_literal ]) = (subscript_expression "ppiVar13[0x19]" identifier [ number_literal ])) ;) (expression_statement "ppiVar13[0xb] = ppiVar13[0x1a];" (assignment_expression "ppiVar13[0xb] = ppiVar13[0x1a]" (subscript_expression "ppiVar13[0xb]" identifier [ number_literal ]) = (subscript_expression "ppiVar13[0x1a]" identifier [ number_literal ])) ;) (expression_statement "ppiVar13[9] = &DAT_0038f4c4;" (assignment_expression "ppiVar13[9] = &DAT_0038f4c4" (subscript_expression "ppiVar13[9]" identifier [ number_literal ]) = (pointer_expression "&DAT_0038f4c4" & identifier)) ;) (expression_statement "ppiVar13[0xfffffffd] = (int *)0x1;" (assignment_expression "ppiVar13[0xfffffffd] = (int *)0x1" (subscript_expression "ppiVar13[0xfffffffd]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar13[0xfffffffc] = (int *)0x0;" (assignment_expression "ppiVar13[0xfffffffc] = (int *)0x0" (subscript_expression "ppiVar13[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);" (assignment_expression "ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9)" (subscript_expression "ppiVar13[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar13 + 9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar13 + 9)" ( (binary_expression "ppiVar13 + 9" identifier + number_literal) )))) ;) (expression_statement "ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);" (assignment_expression "ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10)" (subscript_expression "ppiVar13[0xfffffffa]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar13 + 10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar13 + 10)" ( (binary_expression "ppiVar13 + 10" identifier + number_literal) )))) ;) (expression_statement "ppiVar13[0xfffffff9] = &DAT_0038f4c4;" (assignment_expression "ppiVar13[0xfffffff9] = &DAT_0038f4c4" (subscript_expression "ppiVar13[0xfffffff9]" identifier [ number_literal ]) = (pointer_expression "&DAT_0038f4c4" & identifier)) ;) (expression_statement "ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);" (assignment_expression "ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4)" (subscript_expression "ppiVar13[0xfffffff8]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar13 + 4)" ( (binary_expression "ppiVar13 + 4" identifier + number_literal) )))) ;) (expression_statement "ppiVar13[0xfffffff7] = (int *)0xaeaff;" (assignment_expression "ppiVar13[0xfffffff7] = (int *)0xaeaff" (subscript_expression "ppiVar13[0xfffffff7]" identifier [ number_literal ]) = (cast_expression "(int *)0xaeaff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_000ae400();" (call_expression "FUN_000ae400()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppiVar12 = ppiVar13 + 0x17;" (assignment_expression "ppiVar12 = ppiVar13 + 0x17" identifier = (binary_expression "ppiVar13 + 0x17" identifier + number_literal)) ;) (expression_statement "ppiVar13 = ppiVar13 + 0xffffffff;" (assignment_expression "ppiVar13 = ppiVar13 + 0xffffffff" identifier = (binary_expression "ppiVar13 + 0xffffffff" identifier + number_literal)) ;) (expression_statement "uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);" (assignment_expression "uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac)" identifier = (binary_expression "(uint)*(byte *)((*ppiVar12)[1] + 0xac)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((*ppiVar12)[1] + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*ppiVar12)[1] + 0xac)" ( (binary_expression "(*ppiVar12)[1] + 0xac" (subscript_expression "(*ppiVar12)[1]" (parenthesized_expression "(*ppiVar12)" ( (pointer_expression "*ppiVar12" * identifier) )) [ number_literal ]) + number_literal) ))))) ;) (goto_statement "goto LAB_000ae822;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_000ae820:\n  uVar17 = 0;" statement_identifier : (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_000ae822:\n  uVar1 = *(uint *)(iVar6 + 0x54);" statement_identifier : (expression_statement "uVar1 = *(uint *)(iVar6 + 0x54);" (assignment_expression "uVar1 = *(uint *)(iVar6 + 0x54)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x54)" * (cast_expression "(uint *)(iVar6 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x54)" ( (binary_expression "iVar6 + 0x54" identifier + number_literal) ))))) ;)) (expression_statement "*(uint *)((int)ppiVar13 + -4) = uVar17;" (assignment_expression "*(uint *)((int)ppiVar13 + -4) = uVar17" (pointer_expression "*(uint *)((int)ppiVar13 + -4)" * (cast_expression "(uint *)((int)ppiVar13 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -4)" ( (binary_expression "(int)ppiVar13 + -4" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -8)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -8)" ( (binary_expression "(int)ppiVar13 + -8" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x78)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x78)" ( (binary_expression "(int)ppiVar13 + 0x78" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0xc)" ( (binary_expression "(int)ppiVar13 + -0xc" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x70)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x70)" ( (binary_expression "(int)ppiVar13 + 0x70" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x10)" ( (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x6c)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x6c)" ( (binary_expression "(int)ppiVar13 + 0x6c" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x14)" ( (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x68)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x68)" ( (binary_expression "(int)ppiVar13 + 0x68" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x18)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x18)" ( (binary_expression "(int)ppiVar13 + -0x18" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 100)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 100)" ( (binary_expression "(int)ppiVar13 + 100" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x1c)" ( (binary_expression "(int)ppiVar13 + -0x1c" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x60)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x60)" ( (binary_expression "(int)ppiVar13 + 0x60" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)ppiVar13 + -0x20) = iVar6;" (assignment_expression "*(int *)((int)ppiVar13 + -0x20) = iVar6" (pointer_expression "*(int *)((int)ppiVar13 + -0x20)" * (cast_expression "(int *)((int)ppiVar13 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x20)" ( (binary_expression "(int)ppiVar13 + -0x20" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x24)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x24)" ( (binary_expression "(int)ppiVar13 + -0x24" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar26 = FUN_00125670();" (assignment_expression "uVar26 = FUN_00125670()" identifier = (call_expression "FUN_00125670()" identifier (argument_list "()" ( )))) ;) (expression_statement "**(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;" (assignment_expression "**(undefined8 **)((int)ppiVar13 + 0x80) = uVar26" (pointer_expression "**(undefined8 **)((int)ppiVar13 + 0x80)" * (pointer_expression "*(undefined8 **)((int)ppiVar13 + 0x80)" * (cast_expression "(undefined8 **)((int)ppiVar13 + 0x80)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + 0x80)" ( (binary_expression "(int)ppiVar13 + 0x80" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) = identifier) ;) (if_statement "if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }" if (parenthesized_expression "(((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0))" ( (binary_expression "((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 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 *)(iVar6 + 0x54)) & 5) != 0)" ( (binary_expression "((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0" (parenthesized_expression "((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5)" ( (binary_expression "(uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5" (parenthesized_expression "(uVar1 ^ *(uint *)(iVar6 + 0x54))" ( (binary_expression "uVar1 ^ *(uint *)(iVar6 + 0x54)" identifier ^ (pointer_expression "*(uint *)(iVar6 + 0x54)" * (cast_expression "(uint *)(iVar6 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x54)" ( (binary_expression "iVar6 + 0x54" identifier + number_literal) ))))) )) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }" { (expression_statement "*(undefined4 *)((int)ppiVar13 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -8) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -8)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -8)" ( (binary_expression "(int)ppiVar13 + -8" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppiVar13 + -0xc) = iVar6;" (assignment_expression "*(int *)((int)ppiVar13 + -0xc) = iVar6" (pointer_expression "*(int *)((int)ppiVar13 + -0xc)" * (cast_expression "(int *)((int)ppiVar13 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0xc)" ( (binary_expression "(int)ppiVar13 + -0xc" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x10)" ( (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x60)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x60)" ( (binary_expression "(int)ppiVar13 + 0x60" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x14)" ( (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = FUN_00097200();" (assignment_expression "uVar5 = FUN_00097200()" identifier = (call_expression "FUN_00097200()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x5c) = uVar5;" (assignment_expression "*(undefined4 *)(iVar6 + 0x5c) = uVar5" (pointer_expression "*(undefined4 *)(iVar6 + 0x5c)" * (cast_expression "(undefined4 *)(iVar6 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x5c)" ( (binary_expression "iVar6 + 0x5c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1" (pointer_expression "*(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4)" * (cast_expression "(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)ppiVar13 + 0x60) + 0x1c4)" ( (binary_expression "*(int *)((int)ppiVar13 + 0x60) + 0x1c4" (pointer_expression "*(int *)((int)ppiVar13 + 0x60)" * (cast_expression "(int *)((int)ppiVar13 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x60)" ( (binary_expression "(int)ppiVar13 + 0x60" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) = number_literal) ;) (return_statement "return iVar6;" 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, false>\n   DWARF original prototype: Output_section * layout<32,_false>(Layout * this,\n   Sized_relobj_file<32,_false> * object, uint shndx, char * name, Shdr<32,_false> * shdr, uint\n   sh_type, uint reloc_shndx, uint param_9, off_t * off) */\n\nOutput_section * __thiscall\ngold::Layout::layout<32,_false>\n          (Layout *this,Sized_relobj_file<32,_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  bool bVar5;\n  char cVar6;\n  char *pcVar7;\n  Output_section *pOVar8;\n  General_options *pGVar9;\n  Output_section_order OVar10;\n  size_t sVar11;\n  byte bVar12;\n  int iVar13;\n  Parameters **ppPVar14;\n  General_options *pGVar15;\n  Parameters ***pppPVar16;\n  Parameters ***pppPVar17;\n  byte *pbVar18;\n  __hashtable_alloc *p_Var19;\n  undefined1 *puVar20;\n  uint uVar21;\n  byte *pbVar22;\n  __node_gen_type _Var23;\n  bool bVar24;\n  undefined1 uVar25;\n  bool bVar26;\n  undefined1 uVar27;\n  byte bVar28;\n  off_t oVar29;\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  bVar28 = 0;\n  uStack_14 = 0xae579;\n  *(undefined4 *)off = 0;\n  *(undefined4 *)((int)off + 4) = 0;\n  bVar5 = include_section<32,_false>(this,object,name,shdr);\n  pppPVar16 = &local_5c;\n  if (!bVar5) {\n    return (Output_section *)0x0;\n  }\n  pGVar9 = parameters->options_;\n  pppPVar17 = &local_5c;\n  if (pGVar9 == (General_options *)0x0) goto LAB_000aeb68;\n  if (((pGVar9->relocatable_).value == false) ||\n     (uVar21 = shdr->p_->sh_flags, (uVar21 & 0x200) == 0)) {\n    ppPVar14 = &parameters;\n    if ((pGVar9->text_unlikely_segment_).value != false) {\n      uVar25 = &local_5c < (undefined1 *)0x4;\n      uVar27 = &stack0x00000000 == (undefined1 *)0x60;\n      local_58 = &parameters;\n      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);\n      iVar13 = 0xe;\n      local_58 = (Parameters **)0x28a53f;\n      p_Var19 = (__hashtable_alloc *)".text.unlikely";\n      _Var23 = __node_gen;\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar25 = (byte)*p_Var19 < (byte)*_Var23._M_h;\n        uVar27 = *p_Var19 == *_Var23._M_h;\n        p_Var19 = p_Var19 + (uint)bVar28 * -2 + 1;\n        _Var23._M_h = _Var23._M_h + (uint)bVar28 * -2 + 1;\n      } while ((bool)uVar27);\n      pppPVar16 = (Parameters ***)&stack0xffffffa0;\n      if ((!(bool)uVar25 && !(bool)uVar27) == (bool)uVar25) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000aec2b;\n        uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff58f;\n        }\n        pcVar7 = Stringpool_template<char>::add\n                           (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar8 = get_output_section(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                    (ulonglong)uVar21,ORDER_INVALID,false);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        goto LAB_000ae6f0;\n      }\n      ppPVar14 = local_5c;\n      if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        ppPVar14 = local_5c;\n      }\n    }\n    *(Parameters ***)((int)pppPVar16 + 4) = ppPVar14;\n    *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n    *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 0x68);\n    *(Key **)((int)pppPVar16 + -8) = &name_key;\n    *(int *)((int)pppPVar16 + -0xc) = *(int *)((int)pppPVar16 + 0x60) + 0x204;\n    *(undefined1 **)((int)pppPVar16 + -0x10) = (undefined1 *)((int)pppPVar16 + 0x1c);\n    *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae625;\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)pppPVar16 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar16 + -0xc));\n    iVar13 = *(int *)((int)pppPVar16 + 0x1c);\n    if (iVar13 == *(int *)((int)pppPVar16 + 0x60) + 0x208) {\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x18) = 1;\n      uVar3 = *(undefined4 *)(**(int **)((int)pppPVar16 + 0x70) + 8);\n      *(undefined4 *)((int)pppPVar16 + -0x1c) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = uVar3;\n      *(undefined4 *)((int)pppPVar16 + -0x24) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x28) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n      *(undefined4 *)((int)pppPVar16 + -0x2c) = *(undefined4 *)((int)pppPVar16 + 100);\n      *(undefined4 *)((int)pppPVar16 + -0x30) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x34) = 0xae9ae;\n      pOVar8 = choose_output_section\n                         (*(Layout **)((int)pppPVar16 + -0x30),*(Relobj **)((int)pppPVar16 + -0x2c),\n                          *(char **)((int)pppPVar16 + -0x28),*(Elf_Word *)((int)pppPVar16 + -0x24),\n                          *(Elf_Xword *)((int)pppPVar16 + -0x20),*(bool *)((int)pppPVar16 + -0x18),\n                          *(Output_section_order *)((int)pppPVar16 + -0x14),\n                          *(bool *)((int)pppPVar16 + -0x10),*(bool *)((int)pppPVar16 + -0xc),\n                          *(bool *)((int)pppPVar16 + -8));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (pOVar8 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      iVar1 = *(int *)(**(int **)((int)pppPVar16 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        pppPVar16[-1] = (Parameters **)layout<32,_true>;\n        Target::abi_pagesize((Target *)*pppPVar16);\n      }\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar13 + 0x18);\n      *(int **)((int)pppPVar16 + 4) = *(int **)((int)pppPVar16 + 4);\n      *(Key **)((int)pppPVar16 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar16 + -0x10) = *(int *)((int)pppPVar16 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae68b;\n      pcVar7 = Stringpool_template<char>::add\n                         (*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),\n                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),\n                          *(Key **)((int)pppPVar16 + -4));\n      *(undefined4 *)((int)pppPVar16 + -4) = 0;\n      *(undefined4 *)((int)pppPVar16 + -8) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(uint *)((int)pppPVar16 + -0x10) = uVar21;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 0x28);\n      *(char **)((int)pppPVar16 + -0x1c) = pcVar7;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x24) = 0xae6a9;\n      pOVar8 = get_output_section(*(Layout **)((int)pppPVar16 + -0x20),\n                                  *(char **)((int)pppPVar16 + -0x1c),\n                                  *(Key *)((int)pppPVar16 + -0x18),\n                                  *(Elf_Word *)((int)pppPVar16 + -0x14),\n                                  *(Elf_Xword *)((int)pppPVar16 + -0x10),\n                                  *(Output_section_order *)((int)pppPVar16 + -8),\n                                  *(bool *)((int)pppPVar16 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (-1 < (char)pOVar8->field_0x92) {\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        iVar13 = *(int *)(iVar13 + 0x18);\n        uVar3 = *(undefined4 *)(iVar13 + 8);\n        *(undefined4 *)&pOVar8->extra_segment_flags_ = *(undefined4 *)(iVar13 + 4);\n        uVar4 = *(undefined4 *)(iVar13 + 0xc);\n        *(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar13 + 0x10);\n        *(undefined4 *)&pOVar8->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar8->segment_alignment_ + 4) = uVar3;\n      }\n    }\n  }\n  else {\n    local_58 = &parameters;\n    pcVar7 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    pOVar8 = make_output_section(this,pcVar7,sh_type,(ulonglong)(uVar21 & 0xfffff7ff),ORDER_INVALID,\n                                 false);\n    pppPVar16 = &local_5c;\n    local_5c = local_58;\n  }\nLAB_000ae6f0:\n  iVar13 = *(int *)(*(int *)((int)pppPVar16 + 0x60) + 4);\n  pGVar15 = (*local_5c)->options_;\n  *(int *)((int)pppPVar16 + 4) = iVar13;\n  bVar12 = *(byte *)(iVar13 + 0xac);\n  pGVar9 = (General_options *)(uint)bVar12;\n  pppPVar17 = pppPVar16;\n  if (bVar12 != 0) {\n    if (pGVar15 == (General_options *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }\n  if (pGVar15 == (General_options *)0x0) {\nLAB_000aeb68:\n    *(General_options **)((int)pppPVar17 + -4) = pGVar9;\n    *(char **)((int)pppPVar17 + -8) = "options";\n    *(undefined4 *)((int)pppPVar17 + -0xc) = 0x5c;\n    *(char **)((int)pppPVar17 + -0x10) = "../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)pppPVar17 + -0x14) = &UNK_000aeb7e;\n    do_gold_unreachable(*(char **)((int)pppPVar17 + -0x10),*(int *)((int)pppPVar17 + -0xc),\n                        *(char **)((int)pppPVar17 + -8));\n  }\n  bVar5 = false;\n  bVar26 = (pGVar15->relocatable_).value == false;\n  if (!bVar26) goto LAB_000aea50;\n  iVar13 = 7;\n  pbVar18 = (byte *)".ctors.";\n  pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n  do {\n    if (iVar13 == 0) break;\n    iVar13 = iVar13 + -1;\n    bVar5 = *pbVar18 < *pbVar22;\n    bVar26 = *pbVar18 == *pbVar22;\n    pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n    pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n  } while (bVar26);\n  bVar24 = false;\n  bVar5 = (!bVar5 && !bVar26) == bVar5;\n  if (bVar5) {\nLAB_000ae7d8:\n    pOVar8->field_0x91 = pOVar8->field_0x91 | 8;\n    bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);\n    pGVar9 = (General_options *)(uint)bVar12;\n    if ((pGVar15->text_reorder_).value == false) {\nLAB_000aeb99:\n      if (bVar12 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar12 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar6 = (pGVar15->relocatable_).value;\n    if (*(char *)(*(int *)((int)pppPVar16 + 0x60) + 0x1cd) != '\0') goto LAB_000aea64;\n    if ((bool)cVar6 == false) {\n      *(General_options **)((int)pppPVar16 + 0xc) = pGVar15;\n      puVar20 = special_ordering_of_input_section(char_const*)::text_section_sort;\n      *(char ***)((int)pppPVar16 + 8) = gdb_fast_lookup_sections;\n      pcVar7 = ".text.unlikely";\n      sVar11 = 0xe;\n      while( true ) {\n        *(size_t *)((int)pppPVar16 + -8) = sVar11;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebdd;\n        iVar13 = strncmp(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),\n                         *(size_t *)((int)pppPVar16 + -8));\n        if (iVar13 == 0) break;\n        puVar20 = (undefined1 *)((int)puVar20 + 4);\n        if (*(undefined4 **)((int)pppPVar16 + 8) == (undefined4 *)puVar20) goto LAB_000aea6c;\n        pcVar7 = *(char **)puVar20;\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebfc;\n        sVar11 = strlen(*(char **)((int)pppPVar16 + -0x10));\n      }\n      pGVar15 = *(General_options **)((int)pppPVar16 + 0xc);\n      pOVar8->field_0x91 = pOVar8->field_0x91 | 8;\n      bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);\n      pGVar9 = (General_options *)(uint)bVar12;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar13 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    bVar26 = false;\n    bVar5 = (!bVar24 && !bVar5) == bVar24;\n    if (bVar5) goto LAB_000ae7d8;\n    iVar13 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar26 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    bVar24 = false;\n    bVar5 = (!bVar26 && !bVar5) == bVar26;\n    if (bVar5) goto LAB_000ae7d8;\n    iVar13 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    if ((!bVar24 && !bVar5) == bVar24) goto LAB_000ae7d8;\n    bVar5 = false;\n    bVar26 = (pGVar15->ctors_in_init_array_).value == false;\n    if (!bVar26) {\n      iVar13 = 7;\n      pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n      pbVar22 = (byte *)".ctors";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        bVar5 = *pbVar18 < *pbVar22;\n        bVar26 = *pbVar18 == *pbVar22;\n        pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n        pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n      } while (bVar26);\n      bVar24 = false;\n      bVar5 = (!bVar5 && !bVar26) == bVar5;\n      if (!bVar5) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".dtors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar24 = *pbVar18 < *pbVar22;\n          bVar5 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar5);\n        if ((!bVar24 && !bVar5) != bVar24) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if ((pGVar15->text_reorder_).value != false) goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar6 = (pGVar15->relocatable_).value;\nLAB_000aea64:\n    if (cVar6 == '\0') {\nLAB_000aea6c:\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14);\n      bVar5 = uVar21 < 4;\n      bVar26 = uVar21 == 4;\n      if (4 < uVar21) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".ctors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar5 = *pbVar18 < *pbVar22;\n          bVar26 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar5 = (!bVar5 && !bVar26) == bVar5;\n        if (bVar5) {\nLAB_000aeab0:\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".init_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) goto LAB_000aeb18;\n        }\n        else {\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }\n        *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n        *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 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)pppPVar16 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24);\n        *(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 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)pppPVar16 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10);\n        *(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff;\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        pGVar9 = (General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }\nLAB_000ae820:\n  pGVar9 = (General_options *)0x0;\nLAB_000ae822:\n  uVar21 = (uint)pOVar8->flags_;\n  *(General_options **)((int)pppPVar16 + -4) = pGVar9;\n  *(undefined4 *)((int)pppPVar16 + -8) = *(undefined4 *)((int)pppPVar16 + 0x78);\n  *(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x70);\n  *(undefined4 *)((int)pppPVar16 + -0x10) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n  *(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x68);\n  *(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 100);\n  *(undefined4 *)((int)pppPVar16 + -0x1c) = *(undefined4 *)((int)pppPVar16 + 0x60);\n  *(Output_section **)((int)pppPVar16 + -0x20) = pOVar8;\n  *(undefined4 *)((int)pppPVar16 + -0x24) = 0xae844;\n  oVar29 = Output_section::add_input_section<32,_false>\n                     (*(Output_section **)((int)pppPVar16 + -0x20),\n                      *(Layout **)((int)pppPVar16 + -0x1c),\n                      *(Sized_relobj_file<32,_false> **)((int)pppPVar16 + -0x18),\n                      *(uint *)((int)pppPVar16 + -0x14),*(char **)((int)pppPVar16 + -0x10),\n                      *(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4));\n  **(off_t **)((int)pppPVar16 + 0x80) = oVar29;\n  if (((uVar21 & 2) != 0) && (((uVar21 ^ (uint)pOVar8->flags_) & 5) != 0)) {\n    *(undefined4 *)((int)pppPVar16 + -8) = 0;\n    *(Output_section **)((int)pppPVar16 + -0xc) = pOVar8;\n    *(undefined4 *)((int)pppPVar16 + -0x10) = *(undefined4 *)((int)pppPVar16 + 0x60);\n    *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae872;\n    OVar10 = default_section_order\n                       (*(Layout **)((int)pppPVar16 + -0x10),\n                        *(Output_section **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8));\n    pOVar8->order_ = OVar10;\n  }\n  *(undefined1 *)(*(int *)((int)pppPVar16 + 0x60) + 0x1c4) = 1;\n  return pOVar8;\n}\n\n" comment comment comment comment (ERROR "Output_section * __thiscall\ngold::Layout::layout<32,_false>\n          (Layout *this,Sized_relobj_file<32,_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)" (binary_expression "Output_section * __thiscall\ngold::Layout::layout<32,_false>\n          (Layout *this,Sized_relobj_file<32,_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)" (binary_expression "Output_section * __thiscall\ngold::Layout::layout<32" (binary_expression "Output_section * __thiscall" identifier * identifier) (ERROR "gold::Layout::layout" identifier : : identifier : : identifier) < number_literal) (ERROR ",_false" , identifier) > (parenthesized_expression "(Layout *this,Sized_relobj_file<32,_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off)" ( (comma_expression "Layout *this,Sized_relobj_file<32,_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off" (binary_expression "Layout *this" identifier * identifier) , (comma_expression "Sized_relobj_file<32,_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *object,uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint reloc_shndx,uint param_7,off_t *off" (binary_expression "_false> *object" identifier > (pointer_expression "*object" * identifier)) , (ERROR "uint shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint" identifier (comma_expression "shndx,char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint" identifier , (comma_expression "char *name,\n          Shdr<32,_false> *shdr,uint sh_type,uint" (binary_expression "char *name" identifier * identifier) , (comma_expression "Shdr<32,_false> *shdr,uint sh_type,uint" (binary_expression "Shdr<32" identifier < number_literal) , (comma_expression "_false> *shdr,uint sh_type,uint" (binary_expression "_false> *shdr" identifier > (pointer_expression "*shdr" * identifier)) , (ERROR "uint" identifier) (comma_expression "sh_type,uint" identifier , identifier)))))) (comma_expression "reloc_shndx,uint param_7,off_t *off" identifier , (ERROR "uint" identifier) (comma_expression "param_7,off_t *off" identifier , (binary_expression "off_t *off" identifier * identifier)))))) )))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  bool bVar5;\n  char cVar6;\n  char *pcVar7;\n  Output_section *pOVar8;\n  General_options *pGVar9;\n  Output_section_order OVar10;\n  size_t sVar11;\n  byte bVar12;\n  int iVar13;\n  Parameters **ppPVar14;\n  General_options *pGVar15;\n  Parameters ***pppPVar16;\n  Parameters ***pppPVar17;\n  byte *pbVar18;\n  __hashtable_alloc *p_Var19;\n  undefined1 *puVar20;\n  uint uVar21;\n  byte *pbVar22;\n  __node_gen_type _Var23;\n  bool bVar24;\n  undefined1 uVar25;\n  bool bVar26;\n  undefined1 uVar27;\n  byte bVar28;\n  off_t oVar29;\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  bVar28 = 0;\n  uStack_14 = 0xae579;\n  *(undefined4 *)off = 0;\n  *(undefined4 *)((int)off + 4) = 0;\n  bVar5 = include_section<32,_false>(this,object,name,shdr);\n  pppPVar16 = &local_5c;\n  if (!bVar5) {\n    return (Output_section *)0x0;\n  }\n  pGVar9 = parameters->options_;\n  pppPVar17 = &local_5c;\n  if (pGVar9 == (General_options *)0x0) goto LAB_000aeb68;\n  if (((pGVar9->relocatable_).value == false) ||\n     (uVar21 = shdr->p_->sh_flags, (uVar21 & 0x200) == 0)) {\n    ppPVar14 = &parameters;\n    if ((pGVar9->text_unlikely_segment_).value != false) {\n      uVar25 = &local_5c < (undefined1 *)0x4;\n      uVar27 = &stack0x00000000 == (undefined1 *)0x60;\n      local_58 = &parameters;\n      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);\n      iVar13 = 0xe;\n      local_58 = (Parameters **)0x28a53f;\n      p_Var19 = (__hashtable_alloc *)".text.unlikely";\n      _Var23 = __node_gen;\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar25 = (byte)*p_Var19 < (byte)*_Var23._M_h;\n        uVar27 = *p_Var19 == *_Var23._M_h;\n        p_Var19 = p_Var19 + (uint)bVar28 * -2 + 1;\n        _Var23._M_h = _Var23._M_h + (uint)bVar28 * -2 + 1;\n      } while ((bool)uVar27);\n      pppPVar16 = (Parameters ***)&stack0xffffffa0;\n      if ((!(bool)uVar25 && !(bool)uVar27) == (bool)uVar25) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000aec2b;\n        uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff58f;\n        }\n        pcVar7 = Stringpool_template<char>::add\n                           (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar8 = get_output_section(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                    (ulonglong)uVar21,ORDER_INVALID,false);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        goto LAB_000ae6f0;\n      }\n      ppPVar14 = local_5c;\n      if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        ppPVar14 = local_5c;\n      }\n    }\n    *(Parameters ***)((int)pppPVar16 + 4) = ppPVar14;\n    *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n    *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 0x68);\n    *(Key **)((int)pppPVar16 + -8) = &name_key;\n    *(int *)((int)pppPVar16 + -0xc) = *(int *)((int)pppPVar16 + 0x60) + 0x204;\n    *(undefined1 **)((int)pppPVar16 + -0x10) = (undefined1 *)((int)pppPVar16 + 0x1c);\n    *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae625;\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)pppPVar16 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar16 + -0xc));\n    iVar13 = *(int *)((int)pppPVar16 + 0x1c);\n    if (iVar13 == *(int *)((int)pppPVar16 + 0x60) + 0x208) {\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x18) = 1;\n      uVar3 = *(undefined4 *)(**(int **)((int)pppPVar16 + 0x70) + 8);\n      *(undefined4 *)((int)pppPVar16 + -0x1c) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = uVar3;\n      *(undefined4 *)((int)pppPVar16 + -0x24) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x28) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n      *(undefined4 *)((int)pppPVar16 + -0x2c) = *(undefined4 *)((int)pppPVar16 + 100);\n      *(undefined4 *)((int)pppPVar16 + -0x30) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x34) = 0xae9ae;\n      pOVar8 = choose_output_section\n                         (*(Layout **)((int)pppPVar16 + -0x30),*(Relobj **)((int)pppPVar16 + -0x2c),\n                          *(char **)((int)pppPVar16 + -0x28),*(Elf_Word *)((int)pppPVar16 + -0x24),\n                          *(Elf_Xword *)((int)pppPVar16 + -0x20),*(bool *)((int)pppPVar16 + -0x18),\n                          *(Output_section_order *)((int)pppPVar16 + -0x14),\n                          *(bool *)((int)pppPVar16 + -0x10),*(bool *)((int)pppPVar16 + -0xc),\n                          *(bool *)((int)pppPVar16 + -8));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (pOVar8 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      iVar1 = *(int *)(**(int **)((int)pppPVar16 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        pppPVar16[-1] = (Parameters **)layout<32,_true>;\n        Target::abi_pagesize((Target *)*pppPVar16);\n      }\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar13 + 0x18);\n      *(int **)((int)pppPVar16 + 4) = *(int **)((int)pppPVar16 + 4);\n      *(Key **)((int)pppPVar16 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar16 + -0x10) = *(int *)((int)pppPVar16 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae68b;\n      pcVar7 = Stringpool_template<char>::add\n                         (*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),\n                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),\n                          *(Key **)((int)pppPVar16 + -4));\n      *(undefined4 *)((int)pppPVar16 + -4) = 0;\n      *(undefined4 *)((int)pppPVar16 + -8) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(uint *)((int)pppPVar16 + -0x10) = uVar21;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 0x28);\n      *(char **)((int)pppPVar16 + -0x1c) = pcVar7;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x24) = 0xae6a9;\n      pOVar8 = get_output_section(*(Layout **)((int)pppPVar16 + -0x20),\n                                  *(char **)((int)pppPVar16 + -0x1c),\n                                  *(Key *)((int)pppPVar16 + -0x18),\n                                  *(Elf_Word *)((int)pppPVar16 + -0x14),\n                                  *(Elf_Xword *)((int)pppPVar16 + -0x10),\n                                  *(Output_section_order *)((int)pppPVar16 + -8),\n                                  *(bool *)((int)pppPVar16 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (-1 < (char)pOVar8->field_0x92) {\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        iVar13 = *(int *)(iVar13 + 0x18);\n        uVar3 = *(undefined4 *)(iVar13 + 8);\n        *(undefined4 *)&pOVar8->extra_segment_flags_ = *(undefined4 *)(iVar13 + 4);\n        uVar4 = *(undefined4 *)(iVar13 + 0xc);\n        *(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar13 + 0x10);\n        *(undefined4 *)&pOVar8->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar8->segment_alignment_ + 4) = uVar3;\n      }\n    }\n  }\n  else {\n    local_58 = &parameters;\n    pcVar7 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    pOVar8 = make_output_section(this,pcVar7,sh_type,(ulonglong)(uVar21 & 0xfffff7ff),ORDER_INVALID,\n                                 false);\n    pppPVar16 = &local_5c;\n    local_5c = local_58;\n  }\nLAB_000ae6f0:\n  iVar13 = *(int *)(*(int *)((int)pppPVar16 + 0x60) + 4);\n  pGVar15 = (*local_5c)->options_;\n  *(int *)((int)pppPVar16 + 4) = iVar13;\n  bVar12 = *(byte *)(iVar13 + 0xac);\n  pGVar9 = (General_options *)(uint)bVar12;\n  pppPVar17 = pppPVar16;\n  if (bVar12 != 0) {\n    if (pGVar15 == (General_options *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }\n  if (pGVar15 == (General_options *)0x0) {\nLAB_000aeb68:\n    *(General_options **)((int)pppPVar17 + -4) = pGVar9;\n    *(char **)((int)pppPVar17 + -8) = "options";\n    *(undefined4 *)((int)pppPVar17 + -0xc) = 0x5c;\n    *(char **)((int)pppPVar17 + -0x10) = "../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)pppPVar17 + -0x14) = &UNK_000aeb7e;\n    do_gold_unreachable(*(char **)((int)pppPVar17 + -0x10),*(int *)((int)pppPVar17 + -0xc),\n                        *(char **)((int)pppPVar17 + -8));\n  }\n  bVar5 = false;\n  bVar26 = (pGVar15->relocatable_).value == false;\n  if (!bVar26) goto LAB_000aea50;\n  iVar13 = 7;\n  pbVar18 = (byte *)".ctors.";\n  pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n  do {\n    if (iVar13 == 0) break;\n    iVar13 = iVar13 + -1;\n    bVar5 = *pbVar18 < *pbVar22;\n    bVar26 = *pbVar18 == *pbVar22;\n    pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n    pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n  } while (bVar26);\n  bVar24 = false;\n  bVar5 = (!bVar5 && !bVar26) == bVar5;\n  if (bVar5) {\nLAB_000ae7d8:\n    pOVar8->field_0x91 = pOVar8->field_0x91 | 8;\n    bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);\n    pGVar9 = (General_options *)(uint)bVar12;\n    if ((pGVar15->text_reorder_).value == false) {\nLAB_000aeb99:\n      if (bVar12 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar12 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar6 = (pGVar15->relocatable_).value;\n    if (*(char *)(*(int *)((int)pppPVar16 + 0x60) + 0x1cd) != '\0') goto LAB_000aea64;\n    if ((bool)cVar6 == false) {\n      *(General_options **)((int)pppPVar16 + 0xc) = pGVar15;\n      puVar20 = special_ordering_of_input_section(char_const*)::text_section_sort;\n      *(char ***)((int)pppPVar16 + 8) = gdb_fast_lookup_sections;\n      pcVar7 = ".text.unlikely";\n      sVar11 = 0xe;\n      while( true ) {\n        *(size_t *)((int)pppPVar16 + -8) = sVar11;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebdd;\n        iVar13 = strncmp(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),\n                         *(size_t *)((int)pppPVar16 + -8));\n        if (iVar13 == 0) break;\n        puVar20 = (undefined1 *)((int)puVar20 + 4);\n        if (*(undefined4 **)((int)pppPVar16 + 8) == (undefined4 *)puVar20) goto LAB_000aea6c;\n        pcVar7 = *(char **)puVar20;\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebfc;\n        sVar11 = strlen(*(char **)((int)pppPVar16 + -0x10));\n      }\n      pGVar15 = *(General_options **)((int)pppPVar16 + 0xc);\n      pOVar8->field_0x91 = pOVar8->field_0x91 | 8;\n      bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);\n      pGVar9 = (General_options *)(uint)bVar12;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar13 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    bVar26 = false;\n    bVar5 = (!bVar24 && !bVar5) == bVar24;\n    if (bVar5) goto LAB_000ae7d8;\n    iVar13 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar26 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    bVar24 = false;\n    bVar5 = (!bVar26 && !bVar5) == bVar26;\n    if (bVar5) goto LAB_000ae7d8;\n    iVar13 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    if ((!bVar24 && !bVar5) == bVar24) goto LAB_000ae7d8;\n    bVar5 = false;\n    bVar26 = (pGVar15->ctors_in_init_array_).value == false;\n    if (!bVar26) {\n      iVar13 = 7;\n      pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n      pbVar22 = (byte *)".ctors";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        bVar5 = *pbVar18 < *pbVar22;\n        bVar26 = *pbVar18 == *pbVar22;\n        pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n        pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n      } while (bVar26);\n      bVar24 = false;\n      bVar5 = (!bVar5 && !bVar26) == bVar5;\n      if (!bVar5) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".dtors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar24 = *pbVar18 < *pbVar22;\n          bVar5 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar5);\n        if ((!bVar24 && !bVar5) != bVar24) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if ((pGVar15->text_reorder_).value != false) goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar6 = (pGVar15->relocatable_).value;\nLAB_000aea64:\n    if (cVar6 == '\0') {\nLAB_000aea6c:\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14);\n      bVar5 = uVar21 < 4;\n      bVar26 = uVar21 == 4;\n      if (4 < uVar21) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".ctors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar5 = *pbVar18 < *pbVar22;\n          bVar26 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar5 = (!bVar5 && !bVar26) == bVar5;\n        if (bVar5) {\nLAB_000aeab0:\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".init_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) goto LAB_000aeb18;\n        }\n        else {\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }\n        *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n        *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 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)pppPVar16 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24);\n        *(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 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)pppPVar16 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10);\n        *(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff;\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        pGVar9 = (General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }\nLAB_000ae820:\n  pGVar9 = (General_options *)0x0;\nLAB_000ae822:\n  uVar21 = (uint)pOVar8->flags_;\n  *(General_options **)((int)pppPVar16 + -4) = pGVar9;\n  *(undefined4 *)((int)pppPVar16 + -8) = *(undefined4 *)((int)pppPVar16 + 0x78);\n  *(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x70);\n  *(undefined4 *)((int)pppPVar16 + -0x10) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n  *(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x68);\n  *(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 100);\n  *(undefined4 *)((int)pppPVar16 + -0x1c) = *(undefined4 *)((int)pppPVar16 + 0x60);\n  *(Output_section **)((int)pppPVar16 + -0x20) = pOVar8;\n  *(undefined4 *)((int)pppPVar16 + -0x24) = 0xae844;\n  oVar29 = Output_section::add_input_section<32,_false>\n                     (*(Output_section **)((int)pppPVar16 + -0x20),\n                      *(Layout **)((int)pppPVar16 + -0x1c),\n                      *(Sized_relobj_file<32,_false> **)((int)pppPVar16 + -0x18),\n                      *(uint *)((int)pppPVar16 + -0x14),*(char **)((int)pppPVar16 + -0x10),\n                      *(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4));\n  **(off_t **)((int)pppPVar16 + 0x80) = oVar29;\n  if (((uVar21 & 2) != 0) && (((uVar21 ^ (uint)pOVar8->flags_) & 5) != 0)) {\n    *(undefined4 *)((int)pppPVar16 + -8) = 0;\n    *(Output_section **)((int)pppPVar16 + -0xc) = pOVar8;\n    *(undefined4 *)((int)pppPVar16 + -0x10) = *(undefined4 *)((int)pppPVar16 + 0x60);\n    *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae872;\n    OVar10 = default_section_order\n                       (*(Layout **)((int)pppPVar16 + -0x10),\n                        *(Output_section **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8));\n    pOVar8->order_ = OVar10;\n  }\n  *(undefined1 *)(*(int *)((int)pppPVar16 + 0x60) + 0x1c4) = 1;\n  return pOVar8;\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 "bool bVar5;" primitive_type identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "Output_section *pOVar8;" type_identifier (pointer_declarator "*pOVar8" * identifier) ;) (declaration "General_options *pGVar9;" type_identifier (pointer_declarator "*pGVar9" * identifier) ;) (declaration "Output_section_order OVar10;" type_identifier identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "Parameters **ppPVar14;" type_identifier (pointer_declarator "**ppPVar14" * (pointer_declarator "*ppPVar14" * identifier)) ;) (declaration "General_options *pGVar15;" type_identifier (pointer_declarator "*pGVar15" * identifier) ;) (declaration "Parameters ***pppPVar16;" type_identifier (pointer_declarator "***pppPVar16" * (pointer_declarator "**pppPVar16" * (pointer_declarator "*pppPVar16" * identifier))) ;) (declaration "Parameters ***pppPVar17;" type_identifier (pointer_declarator "***pppPVar17" * (pointer_declarator "**pppPVar17" * (pointer_declarator "*pppPVar17" * identifier))) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "__hashtable_alloc *p_Var19;" type_identifier (pointer_declarator "*p_Var19" * identifier) ;) (declaration "undefined1 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "__node_gen_type _Var23;" type_identifier identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "undefined1 uVar25;" type_identifier identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "undefined1 uVar27;" type_identifier identifier ;) (declaration "byte bVar28;" type_identifier identifier ;) (declaration "off_t oVar29;" 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 "bVar28 = 0;" (assignment_expression "bVar28 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xae579;" (assignment_expression "uStack_14 = 0xae579" 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 "bVar5 = include_section<32,_false>(this,object,name,shdr);" (comma_expression "bVar5 = include_section<32,_false>(this,object,name,shdr)" (assignment_expression "bVar5 = include_section<32" identifier = (binary_expression "include_section<32" identifier < number_literal)) , (binary_expression "_false>(this,object,name,shdr)" identifier > (parenthesized_expression "(this,object,name,shdr)" ( (comma_expression "this,object,name,shdr" identifier , (comma_expression "object,name,shdr" identifier , (comma_expression "name,shdr" identifier , identifier))) )))) ;) (expression_statement "pppPVar16 = &local_5c;" (assignment_expression "pppPVar16 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (if_statement "if (!bVar5) {\n    return (Output_section *)0x0;\n  }" if (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! 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 "pGVar9 = parameters->options_;" (assignment_expression "pGVar9 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (expression_statement "pppPVar17 = &local_5c;" (assignment_expression "pppPVar17 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (if_statement "if (pGVar9 == (General_options *)0x0) goto LAB_000aeb68;" if (parenthesized_expression "(pGVar9 == (General_options *)0x0)" ( (binary_expression "pGVar9 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000aeb68;" goto statement_identifier ;)) (if_statement "if (((pGVar9->relocatable_).value == false) ||\n     (uVar21 = shdr->p_->sh_flags, (uVar21 & 0x200) == 0)) {\n    ppPVar14 = &parameters;\n    if ((pGVar9->text_unlikely_segment_).value != false) {\n      uVar25 = &local_5c < (undefined1 *)0x4;\n      uVar27 = &stack0x00000000 == (undefined1 *)0x60;\n      local_58 = &parameters;\n      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);\n      iVar13 = 0xe;\n      local_58 = (Parameters **)0x28a53f;\n      p_Var19 = (__hashtable_alloc *)".text.unlikely";\n      _Var23 = __node_gen;\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar25 = (byte)*p_Var19 < (byte)*_Var23._M_h;\n        uVar27 = *p_Var19 == *_Var23._M_h;\n        p_Var19 = p_Var19 + (uint)bVar28 * -2 + 1;\n        _Var23._M_h = _Var23._M_h + (uint)bVar28 * -2 + 1;\n      } while ((bool)uVar27);\n      pppPVar16 = (Parameters ***)&stack0xffffffa0;\n      if ((!(bool)uVar25 && !(bool)uVar27) == (bool)uVar25) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000aec2b;\n        uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff58f;\n        }\n        pcVar7 = Stringpool_template<char>::add\n                           (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar8 = get_output_section(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                    (ulonglong)uVar21,ORDER_INVALID,false);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        goto LAB_000ae6f0;\n      }\n      ppPVar14 = local_5c;\n      if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        ppPVar14 = local_5c;\n      }\n    }\n    *(Parameters ***)((int)pppPVar16 + 4) = ppPVar14;\n    *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n    *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 0x68);\n    *(Key **)((int)pppPVar16 + -8) = &name_key;\n    *(int *)((int)pppPVar16 + -0xc) = *(int *)((int)pppPVar16 + 0x60) + 0x204;\n    *(undefined1 **)((int)pppPVar16 + -0x10) = (undefined1 *)((int)pppPVar16 + 0x1c);\n    *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae625;\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)pppPVar16 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar16 + -0xc));\n    iVar13 = *(int *)((int)pppPVar16 + 0x1c);\n    if (iVar13 == *(int *)((int)pppPVar16 + 0x60) + 0x208) {\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x18) = 1;\n      uVar3 = *(undefined4 *)(**(int **)((int)pppPVar16 + 0x70) + 8);\n      *(undefined4 *)((int)pppPVar16 + -0x1c) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = uVar3;\n      *(undefined4 *)((int)pppPVar16 + -0x24) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x28) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n      *(undefined4 *)((int)pppPVar16 + -0x2c) = *(undefined4 *)((int)pppPVar16 + 100);\n      *(undefined4 *)((int)pppPVar16 + -0x30) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x34) = 0xae9ae;\n      pOVar8 = choose_output_section\n                         (*(Layout **)((int)pppPVar16 + -0x30),*(Relobj **)((int)pppPVar16 + -0x2c),\n                          *(char **)((int)pppPVar16 + -0x28),*(Elf_Word *)((int)pppPVar16 + -0x24),\n                          *(Elf_Xword *)((int)pppPVar16 + -0x20),*(bool *)((int)pppPVar16 + -0x18),\n                          *(Output_section_order *)((int)pppPVar16 + -0x14),\n                          *(bool *)((int)pppPVar16 + -0x10),*(bool *)((int)pppPVar16 + -0xc),\n                          *(bool *)((int)pppPVar16 + -8));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (pOVar8 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      iVar1 = *(int *)(**(int **)((int)pppPVar16 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        pppPVar16[-1] = (Parameters **)layout<32,_true>;\n        Target::abi_pagesize((Target *)*pppPVar16);\n      }\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar13 + 0x18);\n      *(int **)((int)pppPVar16 + 4) = *(int **)((int)pppPVar16 + 4);\n      *(Key **)((int)pppPVar16 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar16 + -0x10) = *(int *)((int)pppPVar16 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae68b;\n      pcVar7 = Stringpool_template<char>::add\n                         (*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),\n                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),\n                          *(Key **)((int)pppPVar16 + -4));\n      *(undefined4 *)((int)pppPVar16 + -4) = 0;\n      *(undefined4 *)((int)pppPVar16 + -8) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(uint *)((int)pppPVar16 + -0x10) = uVar21;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 0x28);\n      *(char **)((int)pppPVar16 + -0x1c) = pcVar7;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x24) = 0xae6a9;\n      pOVar8 = get_output_section(*(Layout **)((int)pppPVar16 + -0x20),\n                                  *(char **)((int)pppPVar16 + -0x1c),\n                                  *(Key *)((int)pppPVar16 + -0x18),\n                                  *(Elf_Word *)((int)pppPVar16 + -0x14),\n                                  *(Elf_Xword *)((int)pppPVar16 + -0x10),\n                                  *(Output_section_order *)((int)pppPVar16 + -8),\n                                  *(bool *)((int)pppPVar16 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (-1 < (char)pOVar8->field_0x92) {\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        iVar13 = *(int *)(iVar13 + 0x18);\n        uVar3 = *(undefined4 *)(iVar13 + 8);\n        *(undefined4 *)&pOVar8->extra_segment_flags_ = *(undefined4 *)(iVar13 + 4);\n        uVar4 = *(undefined4 *)(iVar13 + 0xc);\n        *(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar13 + 0x10);\n        *(undefined4 *)&pOVar8->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar8->segment_alignment_ + 4) = uVar3;\n      }\n    }\n  }\n  else {\n    local_58 = &parameters;\n    pcVar7 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    pOVar8 = make_output_section(this,pcVar7,sh_type,(ulonglong)(uVar21 & 0xfffff7ff),ORDER_INVALID,\n                                 false);\n    pppPVar16 = &local_5c;\n    local_5c = local_58;\n  }" if (parenthesized_expression "(((pGVar9->relocatable_).value == false) ||\n     (uVar21 = shdr->p_->sh_flags, (uVar21 & 0x200) == 0))" ( (binary_expression "((pGVar9->relocatable_).value == false) ||\n     (uVar21 = shdr->p_->sh_flags, (uVar21 & 0x200) == 0)" (parenthesized_expression "((pGVar9->relocatable_).value == false)" ( (binary_expression "(pGVar9->relocatable_).value == false" (field_expression "(pGVar9->relocatable_).value" (parenthesized_expression "(pGVar9->relocatable_)" ( (field_expression "pGVar9->relocatable_" identifier -> field_identifier) )) . field_identifier) == false) )) || (parenthesized_expression "(uVar21 = shdr->p_->sh_flags, (uVar21 & 0x200) == 0)" ( (comma_expression "uVar21 = shdr->p_->sh_flags, (uVar21 & 0x200) == 0" (assignment_expression "uVar21 = shdr->p_->sh_flags" identifier = (field_expression "shdr->p_->sh_flags" (field_expression "shdr->p_" identifier -> field_identifier) -> field_identifier)) , (binary_expression "(uVar21 & 0x200) == 0" (parenthesized_expression "(uVar21 & 0x200)" ( (binary_expression "uVar21 & 0x200" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n    ppPVar14 = &parameters;\n    if ((pGVar9->text_unlikely_segment_).value != false) {\n      uVar25 = &local_5c < (undefined1 *)0x4;\n      uVar27 = &stack0x00000000 == (undefined1 *)0x60;\n      local_58 = &parameters;\n      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);\n      iVar13 = 0xe;\n      local_58 = (Parameters **)0x28a53f;\n      p_Var19 = (__hashtable_alloc *)".text.unlikely";\n      _Var23 = __node_gen;\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar25 = (byte)*p_Var19 < (byte)*_Var23._M_h;\n        uVar27 = *p_Var19 == *_Var23._M_h;\n        p_Var19 = p_Var19 + (uint)bVar28 * -2 + 1;\n        _Var23._M_h = _Var23._M_h + (uint)bVar28 * -2 + 1;\n      } while ((bool)uVar27);\n      pppPVar16 = (Parameters ***)&stack0xffffffa0;\n      if ((!(bool)uVar25 && !(bool)uVar27) == (bool)uVar25) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000aec2b;\n        uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff58f;\n        }\n        pcVar7 = Stringpool_template<char>::add\n                           (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar8 = get_output_section(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                    (ulonglong)uVar21,ORDER_INVALID,false);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        goto LAB_000ae6f0;\n      }\n      ppPVar14 = local_5c;\n      if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        ppPVar14 = local_5c;\n      }\n    }\n    *(Parameters ***)((int)pppPVar16 + 4) = ppPVar14;\n    *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n    *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 0x68);\n    *(Key **)((int)pppPVar16 + -8) = &name_key;\n    *(int *)((int)pppPVar16 + -0xc) = *(int *)((int)pppPVar16 + 0x60) + 0x204;\n    *(undefined1 **)((int)pppPVar16 + -0x10) = (undefined1 *)((int)pppPVar16 + 0x1c);\n    *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae625;\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)pppPVar16 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar16 + -0xc));\n    iVar13 = *(int *)((int)pppPVar16 + 0x1c);\n    if (iVar13 == *(int *)((int)pppPVar16 + 0x60) + 0x208) {\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x18) = 1;\n      uVar3 = *(undefined4 *)(**(int **)((int)pppPVar16 + 0x70) + 8);\n      *(undefined4 *)((int)pppPVar16 + -0x1c) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = uVar3;\n      *(undefined4 *)((int)pppPVar16 + -0x24) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x28) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n      *(undefined4 *)((int)pppPVar16 + -0x2c) = *(undefined4 *)((int)pppPVar16 + 100);\n      *(undefined4 *)((int)pppPVar16 + -0x30) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x34) = 0xae9ae;\n      pOVar8 = choose_output_section\n                         (*(Layout **)((int)pppPVar16 + -0x30),*(Relobj **)((int)pppPVar16 + -0x2c),\n                          *(char **)((int)pppPVar16 + -0x28),*(Elf_Word *)((int)pppPVar16 + -0x24),\n                          *(Elf_Xword *)((int)pppPVar16 + -0x20),*(bool *)((int)pppPVar16 + -0x18),\n                          *(Output_section_order *)((int)pppPVar16 + -0x14),\n                          *(bool *)((int)pppPVar16 + -0x10),*(bool *)((int)pppPVar16 + -0xc),\n                          *(bool *)((int)pppPVar16 + -8));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (pOVar8 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      iVar1 = *(int *)(**(int **)((int)pppPVar16 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        pppPVar16[-1] = (Parameters **)layout<32,_true>;\n        Target::abi_pagesize((Target *)*pppPVar16);\n      }\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar13 + 0x18);\n      *(int **)((int)pppPVar16 + 4) = *(int **)((int)pppPVar16 + 4);\n      *(Key **)((int)pppPVar16 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar16 + -0x10) = *(int *)((int)pppPVar16 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae68b;\n      pcVar7 = Stringpool_template<char>::add\n                         (*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),\n                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),\n                          *(Key **)((int)pppPVar16 + -4));\n      *(undefined4 *)((int)pppPVar16 + -4) = 0;\n      *(undefined4 *)((int)pppPVar16 + -8) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(uint *)((int)pppPVar16 + -0x10) = uVar21;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 0x28);\n      *(char **)((int)pppPVar16 + -0x1c) = pcVar7;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x24) = 0xae6a9;\n      pOVar8 = get_output_section(*(Layout **)((int)pppPVar16 + -0x20),\n                                  *(char **)((int)pppPVar16 + -0x1c),\n                                  *(Key *)((int)pppPVar16 + -0x18),\n                                  *(Elf_Word *)((int)pppPVar16 + -0x14),\n                                  *(Elf_Xword *)((int)pppPVar16 + -0x10),\n                                  *(Output_section_order *)((int)pppPVar16 + -8),\n                                  *(bool *)((int)pppPVar16 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (-1 < (char)pOVar8->field_0x92) {\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        iVar13 = *(int *)(iVar13 + 0x18);\n        uVar3 = *(undefined4 *)(iVar13 + 8);\n        *(undefined4 *)&pOVar8->extra_segment_flags_ = *(undefined4 *)(iVar13 + 4);\n        uVar4 = *(undefined4 *)(iVar13 + 0xc);\n        *(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar13 + 0x10);\n        *(undefined4 *)&pOVar8->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar8->segment_alignment_ + 4) = uVar3;\n      }\n    }\n  }" { (expression_statement "ppPVar14 = &parameters;" (assignment_expression "ppPVar14 = &parameters" identifier = (pointer_expression "&parameters" & identifier)) ;) (if_statement "if ((pGVar9->text_unlikely_segment_).value != false) {\n      uVar25 = &local_5c < (undefined1 *)0x4;\n      uVar27 = &stack0x00000000 == (undefined1 *)0x60;\n      local_58 = &parameters;\n      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);\n      iVar13 = 0xe;\n      local_58 = (Parameters **)0x28a53f;\n      p_Var19 = (__hashtable_alloc *)".text.unlikely";\n      _Var23 = __node_gen;\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar25 = (byte)*p_Var19 < (byte)*_Var23._M_h;\n        uVar27 = *p_Var19 == *_Var23._M_h;\n        p_Var19 = p_Var19 + (uint)bVar28 * -2 + 1;\n        _Var23._M_h = _Var23._M_h + (uint)bVar28 * -2 + 1;\n      } while ((bool)uVar27);\n      pppPVar16 = (Parameters ***)&stack0xffffffa0;\n      if ((!(bool)uVar25 && !(bool)uVar27) == (bool)uVar25) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000aec2b;\n        uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff58f;\n        }\n        pcVar7 = Stringpool_template<char>::add\n                           (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar8 = get_output_section(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                    (ulonglong)uVar21,ORDER_INVALID,false);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        goto LAB_000ae6f0;\n      }\n      ppPVar14 = local_5c;\n      if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        ppPVar14 = local_5c;\n      }\n    }" if (parenthesized_expression "((pGVar9->text_unlikely_segment_).value != false)" ( (binary_expression "(pGVar9->text_unlikely_segment_).value != false" (field_expression "(pGVar9->text_unlikely_segment_).value" (parenthesized_expression "(pGVar9->text_unlikely_segment_)" ( (field_expression "pGVar9->text_unlikely_segment_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n      uVar25 = &local_5c < (undefined1 *)0x4;\n      uVar27 = &stack0x00000000 == (undefined1 *)0x60;\n      local_58 = &parameters;\n      (*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);\n      iVar13 = 0xe;\n      local_58 = (Parameters **)0x28a53f;\n      p_Var19 = (__hashtable_alloc *)".text.unlikely";\n      _Var23 = __node_gen;\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar25 = (byte)*p_Var19 < (byte)*_Var23._M_h;\n        uVar27 = *p_Var19 == *_Var23._M_h;\n        p_Var19 = p_Var19 + (uint)bVar28 * -2 + 1;\n        _Var23._M_h = _Var23._M_h + (uint)bVar28 * -2 + 1;\n      } while ((bool)uVar27);\n      pppPVar16 = (Parameters ***)&stack0xffffffa0;\n      if ((!(bool)uVar25 && !(bool)uVar27) == (bool)uVar25) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000aec2b;\n        uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff58f;\n        }\n        pcVar7 = Stringpool_template<char>::add\n                           (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar8 = get_output_section(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                    (ulonglong)uVar21,ORDER_INVALID,false);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        goto LAB_000ae6f0;\n      }\n      ppPVar14 = local_5c;\n      if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        ppPVar14 = local_5c;\n      }\n    }" { (expression_statement "uVar25 = &local_5c < (undefined1 *)0x4;" (assignment_expression "uVar25 = &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 "uVar27 = &stack0x00000000 == (undefined1 *)0x60;" (assignment_expression "uVar27 = &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,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx);" (call_expression "(*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])\n                (&name_key,object,shndx)" (parenthesized_expression "(*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10])" ( (pointer_expression "*(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10]" * (subscript_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object[0x10]" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_false>)" ( (comma_expression "object->super_Sized_relobj<32,_false" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(&name_key,object,shndx)" ( (pointer_expression "&name_key" & identifier) , identifier , identifier ))) ;) (expression_statement "iVar13 = 0xe;" (assignment_expression "iVar13 = 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_Var19 = (__hashtable_alloc *)".text.unlikely";" (assignment_expression "p_Var19 = (__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 "_Var23 = __node_gen;" (assignment_expression "_Var23 = __node_gen" identifier = identifier) ;) (do_statement "do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar25 = (byte)*p_Var19 < (byte)*_Var23._M_h;\n        uVar27 = *p_Var19 == *_Var23._M_h;\n        p_Var19 = p_Var19 + (uint)bVar28 * -2 + 1;\n        _Var23._M_h = _Var23._M_h + (uint)bVar28 * -2 + 1;\n      } while ((bool)uVar27);" do (compound_statement "{\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar25 = (byte)*p_Var19 < (byte)*_Var23._M_h;\n        uVar27 = *p_Var19 == *_Var23._M_h;\n        p_Var19 = p_Var19 + (uint)bVar28 * -2 + 1;\n        _Var23._M_h = _Var23._M_h + (uint)bVar28 * -2 + 1;\n      }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "uVar25 = (byte)*p_Var19 < (byte)*_Var23._M_h;" (assignment_expression "uVar25 = (byte)*p_Var19 < (byte)*_Var23._M_h" identifier = (binary_expression "(byte)*p_Var19 < (byte)*_Var23._M_h" (binary_expression "(byte)*p_Var19" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*_Var23._M_h" (parenthesized_expression "(byte)" ( identifier )) * (field_expression "_Var23._M_h" identifier . field_identifier)))) ;) (expression_statement "uVar27 = *p_Var19 == *_Var23._M_h;" (assignment_expression "uVar27 = *p_Var19 == *_Var23._M_h" identifier = (binary_expression "*p_Var19 == *_Var23._M_h" (pointer_expression "*p_Var19" * identifier) == (pointer_expression "*_Var23._M_h" * (field_expression "_Var23._M_h" identifier . field_identifier)))) ;) (expression_statement "p_Var19 = p_Var19 + (uint)bVar28 * -2 + 1;" (assignment_expression "p_Var19 = p_Var19 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "p_Var19 + (uint)bVar28 * -2 + 1" (binary_expression "p_Var19 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "_Var23._M_h = _Var23._M_h + (uint)bVar28 * -2 + 1;" (assignment_expression "_Var23._M_h = _Var23._M_h + (uint)bVar28 * -2 + 1" (field_expression "_Var23._M_h" identifier . field_identifier) = (binary_expression "_Var23._M_h + (uint)bVar28 * -2 + 1" (binary_expression "_Var23._M_h + (uint)bVar28 * -2" (field_expression "_Var23._M_h" identifier . field_identifier) + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar27)" ( (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "pppPVar16 = (Parameters ***)&stack0xffffffa0;" (assignment_expression "pppPVar16 = (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)uVar25 && !(bool)uVar27) == (bool)uVar25) {\n        if (__node_gen._M_h != local_30) {\n          operator_delete(__node_gen._M_h);\n        }\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000aec2b;\n        uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff58f;\n        }\n        pcVar7 = Stringpool_template<char>::add\n                           (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar8 = get_output_section(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                    (ulonglong)uVar21,ORDER_INVALID,false);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        goto LAB_000ae6f0;\n      }" if (parenthesized_expression "((!(bool)uVar25 && !(bool)uVar27) == (bool)uVar25)" ( (binary_expression "(!(bool)uVar25 && !(bool)uVar27) == (bool)uVar25" (parenthesized_expression "(!(bool)uVar25 && !(bool)uVar27)" ( (binary_expression "!(bool)uVar25 && !(bool)uVar27" (unary_expression "!(bool)uVar25" ! (cast_expression "(bool)uVar25" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar27" ! (cast_expression "(bool)uVar27" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar25" ( (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        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        if ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000aec2b;\n        uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff50f;\n        if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff58f;\n        }\n        pcVar7 = Stringpool_template<char>::add\n                           (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);\n        pOVar8 = get_output_section(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                    (ulonglong)uVar21,ORDER_INVALID,false);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        goto LAB_000ae6f0;\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 "pppPVar16 = (Parameters ***)&stack0xffffffa0;" (assignment_expression "pppPVar16 = (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 ((*local_5c)->options_ == (General_options *)0x0) goto LAB_000aec2b;" 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_000aec2b;" goto statement_identifier ;)) (expression_statement "uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff50f;" (assignment_expression "uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff50f" identifier = (binary_expression "*(uint *)(*(int *)name + 8) & 0xfffff50f" (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) )))) & number_literal)) ;) (if_statement "if (((*local_5c)->options_->relocatable_).value != false) {\n          uVar21 = *(uint *)(*(int *)name + 8) & 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          uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff58f;\n        }" { (expression_statement "uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff58f;" (assignment_expression "uVar21 = *(uint *)(*(int *)name + 8) & 0xfffff58f" identifier = (binary_expression "*(uint *)(*(int *)name + 8) & 0xfffff58f" (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) )))) & number_literal)) ;) })) (expression_statement "pcVar7 = Stringpool_template<char>::add\n                           (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);" (assignment_expression "pcVar7 = 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 "pOVar8 = get_output_section(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                    (ulonglong)uVar21,ORDER_INVALID,false);" (assignment_expression "pOVar8 = get_output_section(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                    (ulonglong)uVar21,ORDER_INVALID,false)" identifier = (call_expression "get_output_section(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                    (ulonglong)uVar21,ORDER_INVALID,false)" identifier (argument_list "(unaff_retaddr,pcVar7,(Key)__node_gen._M_h,(Elf_Word)shdr,\n                                    (ulonglong)uVar21,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) , (cast_expression "(ulonglong)uVar21" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , identifier , false )))) ;) (expression_statement "pppPVar16 = (Parameters ***)&stack0xffffffa0;" (assignment_expression "pppPVar16 = (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 "pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;" (assignment_expression "pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80" (field_expression "pOVar8->field_0x92" identifier -> field_identifier) = (binary_expression "pOVar8->field_0x92 | 0x80" (field_expression "pOVar8->field_0x92" identifier -> field_identifier) | number_literal)) ;) (goto_statement "goto LAB_000ae6f0;" goto statement_identifier ;) })) (expression_statement "ppPVar14 = local_5c;" (assignment_expression "ppPVar14 = local_5c" identifier = identifier) ;) (if_statement "if (__node_gen._M_h != local_30) {\n        operator_delete(__node_gen._M_h);\n        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        ppPVar14 = 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        pppPVar16 = (Parameters ***)&stack0xffffffa0;\n        ppPVar14 = 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 "pppPVar16 = (Parameters ***)&stack0xffffffa0;" (assignment_expression "pppPVar16 = (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 "ppPVar14 = local_5c;" (assignment_expression "ppPVar14 = local_5c" identifier = identifier) ;) })) })) (expression_statement "*(Parameters ***)((int)pppPVar16 + 4) = ppPVar14;" (assignment_expression "*(Parameters ***)((int)pppPVar16 + 4) = ppPVar14" (pointer_expression "*(Parameters ***)((int)pppPVar16 + 4)" * (cast_expression "(Parameters ***)((int)pppPVar16 + 4)" ( (type_descriptor "Parameters ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppPVar16 + 4)" ( (binary_expression "(int)pppPVar16 + 4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x28)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x28)" ( (binary_expression "(int)pppPVar16 + 0x28" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 100)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 100)" ( (binary_expression "(int)pppPVar16 + 100" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 0x68);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 0x68)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x2c)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x2c)" ( (binary_expression "(int)pppPVar16 + 0x2c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x68)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x68)" ( (binary_expression "(int)pppPVar16 + 0x68" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(Key **)((int)pppPVar16 + -8) = &name_key;" (assignment_expression "*(Key **)((int)pppPVar16 + -8) = &name_key" (pointer_expression "*(Key **)((int)pppPVar16 + -8)" * (cast_expression "(Key **)((int)pppPVar16 + -8)" ( (type_descriptor "Key **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&name_key" & identifier)) ;) (expression_statement "*(int *)((int)pppPVar16 + -0xc) = *(int *)((int)pppPVar16 + 0x60) + 0x204;" (assignment_expression "*(int *)((int)pppPVar16 + -0xc) = *(int *)((int)pppPVar16 + 0x60) + 0x204" (pointer_expression "*(int *)((int)pppPVar16 + -0xc)" * (cast_expression "(int *)((int)pppPVar16 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)pppPVar16 + 0x60) + 0x204" (pointer_expression "*(int *)((int)pppPVar16 + 0x60)" * (cast_expression "(int *)((int)pppPVar16 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x60)" ( (binary_expression "(int)pppPVar16 + 0x60" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined1 **)((int)pppPVar16 + -0x10) = (undefined1 *)((int)pppPVar16 + 0x1c);" (assignment_expression "*(undefined1 **)((int)pppPVar16 + -0x10) = (undefined1 *)((int)pppPVar16 + 0x1c)" (pointer_expression "*(undefined1 **)((int)pppPVar16 + -0x10)" * (cast_expression "(undefined1 **)((int)pppPVar16 + -0x10)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)pppPVar16 + 0x1c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x1c)" ( (binary_expression "(int)pppPVar16 + 0x1c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x14) = 0xae625;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x14) = 0xae625" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x14)" ( (binary_expression "(int)pppPVar16 + -0x14" (cast_expression "(int)pppPVar16" ( (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)pppPVar16 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar16 + -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)pppPVar16 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar16 + -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)pppPVar16 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar16 + -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)pppPVar16 + -0x10),\n           *(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar16 + -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)pppPVar16 + -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)pppPVar16 + -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)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar16 + -0xc)" * (call_expression "(pair<const_gold::Relobj*,_unsigned_int> **)((int)pppPVar16 + -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)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "iVar13 = *(int *)((int)pppPVar16 + 0x1c);" (assignment_expression "iVar13 = *(int *)((int)pppPVar16 + 0x1c)" identifier = (pointer_expression "*(int *)((int)pppPVar16 + 0x1c)" * (cast_expression "(int *)((int)pppPVar16 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x1c)" ( (binary_expression "(int)pppPVar16 + 0x1c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (iVar13 == *(int *)((int)pppPVar16 + 0x60) + 0x208) {\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x18) = 1;\n      uVar3 = *(undefined4 *)(**(int **)((int)pppPVar16 + 0x70) + 8);\n      *(undefined4 *)((int)pppPVar16 + -0x1c) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = uVar3;\n      *(undefined4 *)((int)pppPVar16 + -0x24) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x28) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n      *(undefined4 *)((int)pppPVar16 + -0x2c) = *(undefined4 *)((int)pppPVar16 + 100);\n      *(undefined4 *)((int)pppPVar16 + -0x30) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x34) = 0xae9ae;\n      pOVar8 = choose_output_section\n                         (*(Layout **)((int)pppPVar16 + -0x30),*(Relobj **)((int)pppPVar16 + -0x2c),\n                          *(char **)((int)pppPVar16 + -0x28),*(Elf_Word *)((int)pppPVar16 + -0x24),\n                          *(Elf_Xword *)((int)pppPVar16 + -0x20),*(bool *)((int)pppPVar16 + -0x18),\n                          *(Output_section_order *)((int)pppPVar16 + -0x14),\n                          *(bool *)((int)pppPVar16 + -0x10),*(bool *)((int)pppPVar16 + -0xc),\n                          *(bool *)((int)pppPVar16 + -8));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (pOVar8 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }\n    else {\n      iVar1 = *(int *)(**(int **)((int)pppPVar16 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        pppPVar16[-1] = (Parameters **)layout<32,_true>;\n        Target::abi_pagesize((Target *)*pppPVar16);\n      }\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar13 + 0x18);\n      *(int **)((int)pppPVar16 + 4) = *(int **)((int)pppPVar16 + 4);\n      *(Key **)((int)pppPVar16 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar16 + -0x10) = *(int *)((int)pppPVar16 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae68b;\n      pcVar7 = Stringpool_template<char>::add\n                         (*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),\n                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),\n                          *(Key **)((int)pppPVar16 + -4));\n      *(undefined4 *)((int)pppPVar16 + -4) = 0;\n      *(undefined4 *)((int)pppPVar16 + -8) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(uint *)((int)pppPVar16 + -0x10) = uVar21;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 0x28);\n      *(char **)((int)pppPVar16 + -0x1c) = pcVar7;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x24) = 0xae6a9;\n      pOVar8 = get_output_section(*(Layout **)((int)pppPVar16 + -0x20),\n                                  *(char **)((int)pppPVar16 + -0x1c),\n                                  *(Key *)((int)pppPVar16 + -0x18),\n                                  *(Elf_Word *)((int)pppPVar16 + -0x14),\n                                  *(Elf_Xword *)((int)pppPVar16 + -0x10),\n                                  *(Output_section_order *)((int)pppPVar16 + -8),\n                                  *(bool *)((int)pppPVar16 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (-1 < (char)pOVar8->field_0x92) {\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        iVar13 = *(int *)(iVar13 + 0x18);\n        uVar3 = *(undefined4 *)(iVar13 + 8);\n        *(undefined4 *)&pOVar8->extra_segment_flags_ = *(undefined4 *)(iVar13 + 4);\n        uVar4 = *(undefined4 *)(iVar13 + 0xc);\n        *(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar13 + 0x10);\n        *(undefined4 *)&pOVar8->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar8->segment_alignment_ + 4) = uVar3;\n      }\n    }" if (parenthesized_expression "(iVar13 == *(int *)((int)pppPVar16 + 0x60) + 0x208)" ( (binary_expression "iVar13 == *(int *)((int)pppPVar16 + 0x60) + 0x208" identifier == (binary_expression "*(int *)((int)pppPVar16 + 0x60) + 0x208" (pointer_expression "*(int *)((int)pppPVar16 + 0x60)" * (cast_expression "(int *)((int)pppPVar16 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x60)" ( (binary_expression "(int)pppPVar16 + 0x60" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) )) (compound_statement "{\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x18) = 1;\n      uVar3 = *(undefined4 *)(**(int **)((int)pppPVar16 + 0x70) + 8);\n      *(undefined4 *)((int)pppPVar16 + -0x1c) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = uVar3;\n      *(undefined4 *)((int)pppPVar16 + -0x24) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x28) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n      *(undefined4 *)((int)pppPVar16 + -0x2c) = *(undefined4 *)((int)pppPVar16 + 100);\n      *(undefined4 *)((int)pppPVar16 + -0x30) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x34) = 0xae9ae;\n      pOVar8 = choose_output_section\n                         (*(Layout **)((int)pppPVar16 + -0x30),*(Relobj **)((int)pppPVar16 + -0x2c),\n                          *(char **)((int)pppPVar16 + -0x28),*(Elf_Word *)((int)pppPVar16 + -0x24),\n                          *(Elf_Xword *)((int)pppPVar16 + -0x20),*(bool *)((int)pppPVar16 + -0x18),\n                          *(Output_section_order *)((int)pppPVar16 + -0x14),\n                          *(bool *)((int)pppPVar16 + -0x10),*(bool *)((int)pppPVar16 + -0xc),\n                          *(bool *)((int)pppPVar16 + -8));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (pOVar8 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }\n    }" { (expression_statement "*(undefined4 *)((int)pppPVar16 + -8) = 1;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -8) = 1" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -8)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0xc) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0xc) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x14) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x14)" ( (binary_expression "(int)pppPVar16 + -0x14" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x18) = 1;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x18) = 1" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x18)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x18)" ( (binary_expression "(int)pppPVar16 + -0x18" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar3 = *(undefined4 *)(**(int **)((int)pppPVar16 + 0x70) + 8);" (assignment_expression "uVar3 = *(undefined4 *)(**(int **)((int)pppPVar16 + 0x70) + 8)" identifier = (pointer_expression "*(undefined4 *)(**(int **)((int)pppPVar16 + 0x70) + 8)" * (cast_expression "(undefined4 *)(**(int **)((int)pppPVar16 + 0x70) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)((int)pppPVar16 + 0x70) + 8)" ( (binary_expression "**(int **)((int)pppPVar16 + 0x70) + 8" (pointer_expression "**(int **)((int)pppPVar16 + 0x70)" * (pointer_expression "*(int **)((int)pppPVar16 + 0x70)" * (cast_expression "(int **)((int)pppPVar16 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x70)" ( (binary_expression "(int)pppPVar16 + 0x70" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x1c) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x1c)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x1c)" ( (binary_expression "(int)pppPVar16 + -0x1c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x20) = uVar3;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x20) = uVar3" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x20)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x20)" ( (binary_expression "(int)pppPVar16 + -0x20" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x24) = *(undefined4 *)((int)pppPVar16 + 0x74);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x24) = *(undefined4 *)((int)pppPVar16 + 0x74)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x24)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x24)" ( (binary_expression "(int)pppPVar16 + -0x24" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x74)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x74)" ( (binary_expression "(int)pppPVar16 + 0x74" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x28) = *(undefined4 *)((int)pppPVar16 + 0x6c);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x28) = *(undefined4 *)((int)pppPVar16 + 0x6c)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x28)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x28)" ( (binary_expression "(int)pppPVar16 + -0x28" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x6c)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x2c) = *(undefined4 *)((int)pppPVar16 + 100);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x2c) = *(undefined4 *)((int)pppPVar16 + 100)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x2c)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x2c)" ( (binary_expression "(int)pppPVar16 + -0x2c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 100)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 100)" ( (binary_expression "(int)pppPVar16 + 100" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x30) = *(undefined4 *)((int)pppPVar16 + 0x60);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x30) = *(undefined4 *)((int)pppPVar16 + 0x60)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x30)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x30)" ( (binary_expression "(int)pppPVar16 + -0x30" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x60)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x60)" ( (binary_expression "(int)pppPVar16 + 0x60" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x34) = 0xae9ae;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x34) = 0xae9ae" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x34)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x34)" ( (binary_expression "(int)pppPVar16 + -0x34" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar8 = choose_output_section\n                         (*(Layout **)((int)pppPVar16 + -0x30),*(Relobj **)((int)pppPVar16 + -0x2c),\n                          *(char **)((int)pppPVar16 + -0x28),*(Elf_Word *)((int)pppPVar16 + -0x24),\n                          *(Elf_Xword *)((int)pppPVar16 + -0x20),*(bool *)((int)pppPVar16 + -0x18),\n                          *(Output_section_order *)((int)pppPVar16 + -0x14),\n                          *(bool *)((int)pppPVar16 + -0x10),*(bool *)((int)pppPVar16 + -0xc),\n                          *(bool *)((int)pppPVar16 + -8));" (assignment_expression "pOVar8 = choose_output_section\n                         (*(Layout **)((int)pppPVar16 + -0x30),*(Relobj **)((int)pppPVar16 + -0x2c),\n                          *(char **)((int)pppPVar16 + -0x28),*(Elf_Word *)((int)pppPVar16 + -0x24),\n                          *(Elf_Xword *)((int)pppPVar16 + -0x20),*(bool *)((int)pppPVar16 + -0x18),\n                          *(Output_section_order *)((int)pppPVar16 + -0x14),\n                          *(bool *)((int)pppPVar16 + -0x10),*(bool *)((int)pppPVar16 + -0xc),\n                          *(bool *)((int)pppPVar16 + -8))" identifier = (call_expression "choose_output_section\n                         (*(Layout **)((int)pppPVar16 + -0x30),*(Relobj **)((int)pppPVar16 + -0x2c),\n                          *(char **)((int)pppPVar16 + -0x28),*(Elf_Word *)((int)pppPVar16 + -0x24),\n                          *(Elf_Xword *)((int)pppPVar16 + -0x20),*(bool *)((int)pppPVar16 + -0x18),\n                          *(Output_section_order *)((int)pppPVar16 + -0x14),\n                          *(bool *)((int)pppPVar16 + -0x10),*(bool *)((int)pppPVar16 + -0xc),\n                          *(bool *)((int)pppPVar16 + -8))" identifier (argument_list "(*(Layout **)((int)pppPVar16 + -0x30),*(Relobj **)((int)pppPVar16 + -0x2c),\n                          *(char **)((int)pppPVar16 + -0x28),*(Elf_Word *)((int)pppPVar16 + -0x24),\n                          *(Elf_Xword *)((int)pppPVar16 + -0x20),*(bool *)((int)pppPVar16 + -0x18),\n                          *(Output_section_order *)((int)pppPVar16 + -0x14),\n                          *(bool *)((int)pppPVar16 + -0x10),*(bool *)((int)pppPVar16 + -0xc),\n                          *(bool *)((int)pppPVar16 + -8))" ( (pointer_expression "*(Layout **)((int)pppPVar16 + -0x30)" * (cast_expression "(Layout **)((int)pppPVar16 + -0x30)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x30)" ( (binary_expression "(int)pppPVar16 + -0x30" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Relobj **)((int)pppPVar16 + -0x2c)" * (cast_expression "(Relobj **)((int)pppPVar16 + -0x2c)" ( (type_descriptor "Relobj **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x2c)" ( (binary_expression "(int)pppPVar16 + -0x2c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)pppPVar16 + -0x28)" * (cast_expression "(char **)((int)pppPVar16 + -0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x28)" ( (binary_expression "(int)pppPVar16 + -0x28" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Elf_Word *)((int)pppPVar16 + -0x24)" * (cast_expression "(Elf_Word *)((int)pppPVar16 + -0x24)" ( (type_descriptor "Elf_Word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x24)" ( (binary_expression "(int)pppPVar16 + -0x24" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Elf_Xword *)((int)pppPVar16 + -0x20)" * (cast_expression "(Elf_Xword *)((int)pppPVar16 + -0x20)" ( (type_descriptor "Elf_Xword *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x20)" ( (binary_expression "(int)pppPVar16 + -0x20" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar16 + -0x18)" * (cast_expression "(bool *)((int)pppPVar16 + -0x18)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x18)" ( (binary_expression "(int)pppPVar16 + -0x18" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Output_section_order *)((int)pppPVar16 + -0x14)" * (cast_expression "(Output_section_order *)((int)pppPVar16 + -0x14)" ( (type_descriptor "Output_section_order *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x14)" ( (binary_expression "(int)pppPVar16 + -0x14" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar16 + -0x10)" * (cast_expression "(bool *)((int)pppPVar16 + -0x10)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar16 + -0xc)" * (cast_expression "(bool *)((int)pppPVar16 + -0xc)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar16 + -8)" * (cast_expression "(bool *)((int)pppPVar16 + -8)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "local_5c = *(Parameters ***)((int)pppPVar16 + 4);" (assignment_expression "local_5c = *(Parameters ***)((int)pppPVar16 + 4)" identifier = (pointer_expression "*(Parameters ***)((int)pppPVar16 + 4)" * (cast_expression "(Parameters ***)((int)pppPVar16 + 4)" ( (type_descriptor "Parameters ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppPVar16 + 4)" ( (binary_expression "(int)pppPVar16 + 4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (pOVar8 == (Output_section *)0x0) {\n        return (Output_section *)0x0;\n      }" if (parenthesized_expression "(pOVar8 == (Output_section *)0x0)" ( (binary_expression "pOVar8 == (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)pppPVar16 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        pppPVar16[-1] = (Parameters **)layout<32,_true>;\n        Target::abi_pagesize((Target *)*pppPVar16);\n      }\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar13 + 0x18);\n      *(int **)((int)pppPVar16 + 4) = *(int **)((int)pppPVar16 + 4);\n      *(Key **)((int)pppPVar16 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar16 + -0x10) = *(int *)((int)pppPVar16 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae68b;\n      pcVar7 = Stringpool_template<char>::add\n                         (*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),\n                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),\n                          *(Key **)((int)pppPVar16 + -4));\n      *(undefined4 *)((int)pppPVar16 + -4) = 0;\n      *(undefined4 *)((int)pppPVar16 + -8) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(uint *)((int)pppPVar16 + -0x10) = uVar21;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 0x28);\n      *(char **)((int)pppPVar16 + -0x1c) = pcVar7;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x24) = 0xae6a9;\n      pOVar8 = get_output_section(*(Layout **)((int)pppPVar16 + -0x20),\n                                  *(char **)((int)pppPVar16 + -0x1c),\n                                  *(Key *)((int)pppPVar16 + -0x18),\n                                  *(Elf_Word *)((int)pppPVar16 + -0x14),\n                                  *(Elf_Xword *)((int)pppPVar16 + -0x10),\n                                  *(Output_section_order *)((int)pppPVar16 + -8),\n                                  *(bool *)((int)pppPVar16 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (-1 < (char)pOVar8->field_0x92) {\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        iVar13 = *(int *)(iVar13 + 0x18);\n        uVar3 = *(undefined4 *)(iVar13 + 8);\n        *(undefined4 *)&pOVar8->extra_segment_flags_ = *(undefined4 *)(iVar13 + 4);\n        uVar4 = *(undefined4 *)(iVar13 + 0xc);\n        *(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar13 + 0x10);\n        *(undefined4 *)&pOVar8->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar8->segment_alignment_ + 4) = uVar3;\n      }\n    }" else (compound_statement "{\n      iVar1 = *(int *)(**(int **)((int)pppPVar16 + 4) + 8);\n      if (iVar1 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        pppPVar16[-1] = (Parameters **)layout<32,_true>;\n        Target::abi_pagesize((Target *)*pppPVar16);\n      }\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff50f;\n      if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f;\n      }\n      puVar2 = *(undefined4 **)(iVar13 + 0x18);\n      *(int **)((int)pppPVar16 + 4) = *(int **)((int)pppPVar16 + 4);\n      *(Key **)((int)pppPVar16 + -4) = &name_key;\n      *(undefined4 *)((int)pppPVar16 + -8) = 1;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = *puVar2;\n      *(int *)((int)pppPVar16 + -0x10) = *(int *)((int)pppPVar16 + 0x60) + 8;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae68b;\n      pcVar7 = Stringpool_template<char>::add\n                         (*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),\n                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),\n                          *(Key **)((int)pppPVar16 + -4));\n      *(undefined4 *)((int)pppPVar16 + -4) = 0;\n      *(undefined4 *)((int)pppPVar16 + -8) = 0;\n      *(undefined4 *)((int)pppPVar16 + -0xc) = 0;\n      *(uint *)((int)pppPVar16 + -0x10) = uVar21;\n      *(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x74);\n      *(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 0x28);\n      *(char **)((int)pppPVar16 + -0x1c) = pcVar7;\n      *(undefined4 *)((int)pppPVar16 + -0x20) = *(undefined4 *)((int)pppPVar16 + 0x60);\n      *(undefined4 *)((int)pppPVar16 + -0x24) = 0xae6a9;\n      pOVar8 = get_output_section(*(Layout **)((int)pppPVar16 + -0x20),\n                                  *(char **)((int)pppPVar16 + -0x1c),\n                                  *(Key *)((int)pppPVar16 + -0x18),\n                                  *(Elf_Word *)((int)pppPVar16 + -0x14),\n                                  *(Elf_Xword *)((int)pppPVar16 + -0x10),\n                                  *(Output_section_order *)((int)pppPVar16 + -8),\n                                  *(bool *)((int)pppPVar16 + -4));\n      local_5c = *(Parameters ***)((int)pppPVar16 + 4);\n      if (-1 < (char)pOVar8->field_0x92) {\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        iVar13 = *(int *)(iVar13 + 0x18);\n        uVar3 = *(undefined4 *)(iVar13 + 8);\n        *(undefined4 *)&pOVar8->extra_segment_flags_ = *(undefined4 *)(iVar13 + 4);\n        uVar4 = *(undefined4 *)(iVar13 + 0xc);\n        *(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar13 + 0x10);\n        *(undefined4 *)&pOVar8->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar8->segment_alignment_ + 4) = uVar3;\n      }\n    }" { (expression_statement "iVar1 = *(int *)(**(int **)((int)pppPVar16 + 4) + 8);" (assignment_expression "iVar1 = *(int *)(**(int **)((int)pppPVar16 + 4) + 8)" identifier = (pointer_expression "*(int *)(**(int **)((int)pppPVar16 + 4) + 8)" * (cast_expression "(int *)(**(int **)((int)pppPVar16 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)((int)pppPVar16 + 4) + 8)" ( (binary_expression "**(int **)((int)pppPVar16 + 4) + 8" (pointer_expression "**(int **)((int)pppPVar16 + 4)" * (pointer_expression "*(int **)((int)pppPVar16 + 4)" * (cast_expression "(int **)((int)pppPVar16 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 4)" ( (binary_expression "(int)pppPVar16 + 4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) {\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        pppPVar16[-1] = (Parameters **)layout<32,_true>;\n        Target::abi_pagesize((Target *)*pppPVar16);\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        pppPVar16[-1] = (Parameters **)layout<32,_true>;\n        Target::abi_pagesize((Target *)*pppPVar16);\n      }" { (labeled_statement "LAB_000aec2b:\n                    /* WARNING: Subroutine does not return */\n        pppPVar16[-1] = (Parameters **)layout<32,_true>;" statement_identifier : comment (expression_statement "pppPVar16[-1] = (Parameters **)layout<32,_true>;" (comma_expression "pppPVar16[-1] = (Parameters **)layout<32,_true" (assignment_expression "pppPVar16[-1] = (Parameters **)layout<32" (subscript_expression "pppPVar16[-1]" identifier [ number_literal ]) = (binary_expression "(Parameters **)layout<32" (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 *)*pppPVar16);" statement_identifier : (ERROR ":" :) (expression_statement "abi_pagesize((Target *)*pppPVar16);" (call_expression "abi_pagesize((Target *)*pppPVar16)" identifier (argument_list "((Target *)*pppPVar16)" ( (cast_expression "(Target *)*pppPVar16" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pppPVar16" * identifier)) ))) ;)) })) (expression_statement "uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff50f;" (assignment_expression "uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff50f" identifier = (binary_expression "*(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff50f" (pointer_expression "*(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8)" * (cast_expression "(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)((int)pppPVar16 + 0x70) + 8)" ( (binary_expression "**(int **)((int)pppPVar16 + 0x70) + 8" (pointer_expression "**(int **)((int)pppPVar16 + 0x70)" * (pointer_expression "*(int **)((int)pppPVar16 + 0x70)" * (cast_expression "(int **)((int)pppPVar16 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x70)" ( (binary_expression "(int)pppPVar16 + 0x70" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) )))) & number_literal)) ;) (if_statement "if (*(char *)(iVar1 + 0x318d) != '\0') {\n        uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 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        uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f;\n      }" { (expression_statement "uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f;" (assignment_expression "uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f" identifier = (binary_expression "*(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f" (pointer_expression "*(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8)" * (cast_expression "(uint *)(**(int **)((int)pppPVar16 + 0x70) + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)((int)pppPVar16 + 0x70) + 8)" ( (binary_expression "**(int **)((int)pppPVar16 + 0x70) + 8" (pointer_expression "**(int **)((int)pppPVar16 + 0x70)" * (pointer_expression "*(int **)((int)pppPVar16 + 0x70)" * (cast_expression "(int **)((int)pppPVar16 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x70)" ( (binary_expression "(int)pppPVar16 + 0x70" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) )))) & number_literal)) ;) })) (expression_statement "puVar2 = *(undefined4 **)(iVar13 + 0x18);" (assignment_expression "puVar2 = *(undefined4 **)(iVar13 + 0x18)" identifier = (pointer_expression "*(undefined4 **)(iVar13 + 0x18)" * (cast_expression "(undefined4 **)(iVar13 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x18)" ( (binary_expression "iVar13 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(int **)((int)pppPVar16 + 4) = *(int **)((int)pppPVar16 + 4);" (assignment_expression "*(int **)((int)pppPVar16 + 4) = *(int **)((int)pppPVar16 + 4)" (pointer_expression "*(int **)((int)pppPVar16 + 4)" * (cast_expression "(int **)((int)pppPVar16 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 4)" ( (binary_expression "(int)pppPVar16 + 4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(int **)((int)pppPVar16 + 4)" * (cast_expression "(int **)((int)pppPVar16 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 4)" ( (binary_expression "(int)pppPVar16 + 4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(Key **)((int)pppPVar16 + -4) = &name_key;" (assignment_expression "*(Key **)((int)pppPVar16 + -4) = &name_key" (pointer_expression "*(Key **)((int)pppPVar16 + -4)" * (cast_expression "(Key **)((int)pppPVar16 + -4)" ( (type_descriptor "Key **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -4)" ( (binary_expression "(int)pppPVar16 + -4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&name_key" & identifier)) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -8) = 1;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -8) = 1" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -8)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0xc) = *puVar2;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0xc) = *puVar2" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*(int *)((int)pppPVar16 + -0x10) = *(int *)((int)pppPVar16 + 0x60) + 8;" (assignment_expression "*(int *)((int)pppPVar16 + -0x10) = *(int *)((int)pppPVar16 + 0x60) + 8" (pointer_expression "*(int *)((int)pppPVar16 + -0x10)" * (cast_expression "(int *)((int)pppPVar16 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)pppPVar16 + 0x60) + 8" (pointer_expression "*(int *)((int)pppPVar16 + 0x60)" * (cast_expression "(int *)((int)pppPVar16 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x60)" ( (binary_expression "(int)pppPVar16 + 0x60" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x14) = 0xae68b;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x14) = 0xae68b" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x14)" ( (binary_expression "(int)pppPVar16 + -0x14" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pcVar7 = Stringpool_template<char>::add\n                         (*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),\n                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),\n                          *(Key **)((int)pppPVar16 + -4));" (assignment_expression "pcVar7 = Stringpool_template<char>::add\n                         (*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),\n                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),\n                          *(Key **)((int)pppPVar16 + -4))" identifier = (binary_expression "Stringpool_template<char>::add\n                         (*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),\n                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),\n                          *(Key **)((int)pppPVar16 + -4))" (binary_expression "Stringpool_template<char" identifier < identifier) > (ERROR "::" : :) (call_expression "add\n                         (*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),\n                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),\n                          *(Key **)((int)pppPVar16 + -4))" identifier (argument_list "(*(Stringpool_template<char> **)((int)pppPVar16 + -0x10),\n                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),\n                          *(Key **)((int)pppPVar16 + -4))" ( (pointer_expression "*(Stringpool_template<char> **)((int)pppPVar16 + -0x10)" * (call_expression "(Stringpool_template<char> **)((int)pppPVar16 + -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)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)pppPVar16 + -0xc)" * (cast_expression "(char **)((int)pppPVar16 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar16 + -8)" * (cast_expression "(bool *)((int)pppPVar16 + -8)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Key **)((int)pppPVar16 + -4)" * (cast_expression "(Key **)((int)pppPVar16 + -4)" ( (type_descriptor "Key **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -4)" ( (binary_expression "(int)pppPVar16 + -4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -4) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -4)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -4)" ( (binary_expression "(int)pppPVar16 + -4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -8) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -8)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0xc) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0xc) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((int)pppPVar16 + -0x10) = uVar21;" (assignment_expression "*(uint *)((int)pppPVar16 + -0x10) = uVar21" (pointer_expression "*(uint *)((int)pppPVar16 + -0x10)" * (cast_expression "(uint *)((int)pppPVar16 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x74);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x74)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x14)" ( (binary_expression "(int)pppPVar16 + -0x14" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x74)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x74)" ( (binary_expression "(int)pppPVar16 + 0x74" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 0x28);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 0x28)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x18)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x18)" ( (binary_expression "(int)pppPVar16 + -0x18" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x28)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x28)" ( (binary_expression "(int)pppPVar16 + 0x28" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char **)((int)pppPVar16 + -0x1c) = pcVar7;" (assignment_expression "*(char **)((int)pppPVar16 + -0x1c) = pcVar7" (pointer_expression "*(char **)((int)pppPVar16 + -0x1c)" * (cast_expression "(char **)((int)pppPVar16 + -0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x1c)" ( (binary_expression "(int)pppPVar16 + -0x1c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x20) = *(undefined4 *)((int)pppPVar16 + 0x60);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x20) = *(undefined4 *)((int)pppPVar16 + 0x60)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x20)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x20)" ( (binary_expression "(int)pppPVar16 + -0x20" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x60)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x60)" ( (binary_expression "(int)pppPVar16 + 0x60" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x24) = 0xae6a9;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x24) = 0xae6a9" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x24)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x24)" ( (binary_expression "(int)pppPVar16 + -0x24" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pOVar8 = get_output_section(*(Layout **)((int)pppPVar16 + -0x20),\n                                  *(char **)((int)pppPVar16 + -0x1c),\n                                  *(Key *)((int)pppPVar16 + -0x18),\n                                  *(Elf_Word *)((int)pppPVar16 + -0x14),\n                                  *(Elf_Xword *)((int)pppPVar16 + -0x10),\n                                  *(Output_section_order *)((int)pppPVar16 + -8),\n                                  *(bool *)((int)pppPVar16 + -4));" (assignment_expression "pOVar8 = get_output_section(*(Layout **)((int)pppPVar16 + -0x20),\n                                  *(char **)((int)pppPVar16 + -0x1c),\n                                  *(Key *)((int)pppPVar16 + -0x18),\n                                  *(Elf_Word *)((int)pppPVar16 + -0x14),\n                                  *(Elf_Xword *)((int)pppPVar16 + -0x10),\n                                  *(Output_section_order *)((int)pppPVar16 + -8),\n                                  *(bool *)((int)pppPVar16 + -4))" identifier = (call_expression "get_output_section(*(Layout **)((int)pppPVar16 + -0x20),\n                                  *(char **)((int)pppPVar16 + -0x1c),\n                                  *(Key *)((int)pppPVar16 + -0x18),\n                                  *(Elf_Word *)((int)pppPVar16 + -0x14),\n                                  *(Elf_Xword *)((int)pppPVar16 + -0x10),\n                                  *(Output_section_order *)((int)pppPVar16 + -8),\n                                  *(bool *)((int)pppPVar16 + -4))" identifier (argument_list "(*(Layout **)((int)pppPVar16 + -0x20),\n                                  *(char **)((int)pppPVar16 + -0x1c),\n                                  *(Key *)((int)pppPVar16 + -0x18),\n                                  *(Elf_Word *)((int)pppPVar16 + -0x14),\n                                  *(Elf_Xword *)((int)pppPVar16 + -0x10),\n                                  *(Output_section_order *)((int)pppPVar16 + -8),\n                                  *(bool *)((int)pppPVar16 + -4))" ( (pointer_expression "*(Layout **)((int)pppPVar16 + -0x20)" * (cast_expression "(Layout **)((int)pppPVar16 + -0x20)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x20)" ( (binary_expression "(int)pppPVar16 + -0x20" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)pppPVar16 + -0x1c)" * (cast_expression "(char **)((int)pppPVar16 + -0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x1c)" ( (binary_expression "(int)pppPVar16 + -0x1c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Key *)((int)pppPVar16 + -0x18)" * (cast_expression "(Key *)((int)pppPVar16 + -0x18)" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x18)" ( (binary_expression "(int)pppPVar16 + -0x18" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Elf_Word *)((int)pppPVar16 + -0x14)" * (cast_expression "(Elf_Word *)((int)pppPVar16 + -0x14)" ( (type_descriptor "Elf_Word *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x14)" ( (binary_expression "(int)pppPVar16 + -0x14" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Elf_Xword *)((int)pppPVar16 + -0x10)" * (cast_expression "(Elf_Xword *)((int)pppPVar16 + -0x10)" ( (type_descriptor "Elf_Xword *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Output_section_order *)((int)pppPVar16 + -8)" * (cast_expression "(Output_section_order *)((int)pppPVar16 + -8)" ( (type_descriptor "Output_section_order *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar16 + -4)" * (cast_expression "(bool *)((int)pppPVar16 + -4)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -4)" ( (binary_expression "(int)pppPVar16 + -4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "local_5c = *(Parameters ***)((int)pppPVar16 + 4);" (assignment_expression "local_5c = *(Parameters ***)((int)pppPVar16 + 4)" identifier = (pointer_expression "*(Parameters ***)((int)pppPVar16 + 4)" * (cast_expression "(Parameters ***)((int)pppPVar16 + 4)" ( (type_descriptor "Parameters ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppPVar16 + 4)" ( (binary_expression "(int)pppPVar16 + 4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (-1 < (char)pOVar8->field_0x92) {\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        iVar13 = *(int *)(iVar13 + 0x18);\n        uVar3 = *(undefined4 *)(iVar13 + 8);\n        *(undefined4 *)&pOVar8->extra_segment_flags_ = *(undefined4 *)(iVar13 + 4);\n        uVar4 = *(undefined4 *)(iVar13 + 0xc);\n        *(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar13 + 0x10);\n        *(undefined4 *)&pOVar8->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar8->segment_alignment_ + 4) = uVar3;\n      }" if (parenthesized_expression "(-1 < (char)pOVar8->field_0x92)" ( (binary_expression "-1 < (char)pOVar8->field_0x92" number_literal < (cast_expression "(char)pOVar8->field_0x92" ( (type_descriptor "char" primitive_type) ) (field_expression "pOVar8->field_0x92" identifier -> field_identifier))) )) (compound_statement "{\n        pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;\n        iVar13 = *(int *)(iVar13 + 0x18);\n        uVar3 = *(undefined4 *)(iVar13 + 8);\n        *(undefined4 *)&pOVar8->extra_segment_flags_ = *(undefined4 *)(iVar13 + 4);\n        uVar4 = *(undefined4 *)(iVar13 + 0xc);\n        *(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4) = uVar3;\n        uVar3 = *(undefined4 *)(iVar13 + 0x10);\n        *(undefined4 *)&pOVar8->segment_alignment_ = uVar4;\n        *(undefined4 *)((int)&pOVar8->segment_alignment_ + 4) = uVar3;\n      }" { (expression_statement "pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80;" (assignment_expression "pOVar8->field_0x92 = pOVar8->field_0x92 | 0x80" (field_expression "pOVar8->field_0x92" identifier -> field_identifier) = (binary_expression "pOVar8->field_0x92 | 0x80" (field_expression "pOVar8->field_0x92" identifier -> field_identifier) | number_literal)) ;) (expression_statement "iVar13 = *(int *)(iVar13 + 0x18);" (assignment_expression "iVar13 = *(int *)(iVar13 + 0x18)" identifier = (pointer_expression "*(int *)(iVar13 + 0x18)" * (cast_expression "(int *)(iVar13 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x18)" ( (binary_expression "iVar13 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar13 + 8);" (assignment_expression "uVar3 = *(undefined4 *)(iVar13 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar13 + 8)" * (cast_expression "(undefined4 *)(iVar13 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&pOVar8->extra_segment_flags_ = *(undefined4 *)(iVar13 + 4);" (assignment_expression "*(undefined4 *)&pOVar8->extra_segment_flags_ = *(undefined4 *)(iVar13 + 4)" (pointer_expression "*(undefined4 *)&pOVar8->extra_segment_flags_" * (cast_expression "(undefined4 *)&pOVar8->extra_segment_flags_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar8->extra_segment_flags_" & (field_expression "pOVar8->extra_segment_flags_" identifier -> field_identifier)))) = (pointer_expression "*(undefined4 *)(iVar13 + 4)" * (cast_expression "(undefined4 *)(iVar13 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(iVar13 + 0xc);" (assignment_expression "uVar4 = *(undefined4 *)(iVar13 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar13 + 0xc)" * (cast_expression "(undefined4 *)(iVar13 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xc)" ( (binary_expression "iVar13 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4) = uVar3;" (assignment_expression "*(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4) = uVar3" (pointer_expression "*(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar8->extra_segment_flags_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar8->extra_segment_flags_ + 4)" ( (binary_expression "(int)&pOVar8->extra_segment_flags_ + 4" (cast_expression "(int)&pOVar8->extra_segment_flags_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar8->extra_segment_flags_" & (field_expression "pOVar8->extra_segment_flags_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar13 + 0x10);" (assignment_expression "uVar3 = *(undefined4 *)(iVar13 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar13 + 0x10)" * (cast_expression "(undefined4 *)(iVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&pOVar8->segment_alignment_ = uVar4;" (assignment_expression "*(undefined4 *)&pOVar8->segment_alignment_ = uVar4" (pointer_expression "*(undefined4 *)&pOVar8->segment_alignment_" * (cast_expression "(undefined4 *)&pOVar8->segment_alignment_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar8->segment_alignment_" & (field_expression "pOVar8->segment_alignment_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&pOVar8->segment_alignment_ + 4) = uVar3;" (assignment_expression "*(undefined4 *)((int)&pOVar8->segment_alignment_ + 4) = uVar3" (pointer_expression "*(undefined4 *)((int)&pOVar8->segment_alignment_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar8->segment_alignment_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar8->segment_alignment_ + 4)" ( (binary_expression "(int)&pOVar8->segment_alignment_ + 4" (cast_expression "(int)&pOVar8->segment_alignment_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar8->segment_alignment_" & (field_expression "pOVar8->segment_alignment_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) }))) }) (else_clause "else {\n    local_58 = &parameters;\n    pcVar7 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    pOVar8 = make_output_section(this,pcVar7,sh_type,(ulonglong)(uVar21 & 0xfffff7ff),ORDER_INVALID,\n                                 false);\n    pppPVar16 = &local_5c;\n    local_5c = local_58;\n  }" else (compound_statement "{\n    local_58 = &parameters;\n    pcVar7 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);\n    pOVar8 = make_output_section(this,pcVar7,sh_type,(ulonglong)(uVar21 & 0xfffff7ff),ORDER_INVALID,\n                                 false);\n    pppPVar16 = &local_5c;\n    local_5c = local_58;\n  }" { (expression_statement "local_58 = &parameters;" (assignment_expression "local_58 = &parameters" identifier = (pointer_expression "&parameters" & identifier)) ;) (expression_statement "pcVar7 = Stringpool_template<char>::add(&this->namepool_,name,true,(Key *)0x0);" (assignment_expression "pcVar7 = 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 "pOVar8 = make_output_section(this,pcVar7,sh_type,(ulonglong)(uVar21 & 0xfffff7ff),ORDER_INVALID,\n                                 false);" (assignment_expression "pOVar8 = make_output_section(this,pcVar7,sh_type,(ulonglong)(uVar21 & 0xfffff7ff),ORDER_INVALID,\n                                 false)" identifier = (call_expression "make_output_section(this,pcVar7,sh_type,(ulonglong)(uVar21 & 0xfffff7ff),ORDER_INVALID,\n                                 false)" identifier (argument_list "(this,pcVar7,sh_type,(ulonglong)(uVar21 & 0xfffff7ff),ORDER_INVALID,\n                                 false)" ( identifier , identifier , identifier , (call_expression "(ulonglong)(uVar21 & 0xfffff7ff)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar21 & 0xfffff7ff)" ( (binary_expression "uVar21 & 0xfffff7ff" identifier & number_literal) ))) , identifier , false )))) ;) (expression_statement "pppPVar16 = &local_5c;" (assignment_expression "pppPVar16 = &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_000ae6f0:\n  iVar13 = *(int *)(*(int *)((int)pppPVar16 + 0x60) + 4);" statement_identifier : (expression_statement "iVar13 = *(int *)(*(int *)((int)pppPVar16 + 0x60) + 4);" (assignment_expression "iVar13 = *(int *)(*(int *)((int)pppPVar16 + 0x60) + 4)" identifier = (pointer_expression "*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4)" * (cast_expression "(int *)(*(int *)((int)pppPVar16 + 0x60) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppPVar16 + 0x60) + 4)" ( (binary_expression "*(int *)((int)pppPVar16 + 0x60) + 4" (pointer_expression "*(int *)((int)pppPVar16 + 0x60)" * (cast_expression "(int *)((int)pppPVar16 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x60)" ( (binary_expression "(int)pppPVar16 + 0x60" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;)) (expression_statement "pGVar15 = (*local_5c)->options_;" (assignment_expression "pGVar15 = (*local_5c)->options_" identifier = (field_expression "(*local_5c)->options_" (parenthesized_expression "(*local_5c)" ( (pointer_expression "*local_5c" * identifier) )) -> field_identifier)) ;) (expression_statement "*(int *)((int)pppPVar16 + 4) = iVar13;" (assignment_expression "*(int *)((int)pppPVar16 + 4) = iVar13" (pointer_expression "*(int *)((int)pppPVar16 + 4)" * (cast_expression "(int *)((int)pppPVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 4)" ( (binary_expression "(int)pppPVar16 + 4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "bVar12 = *(byte *)(iVar13 + 0xac);" (assignment_expression "bVar12 = *(byte *)(iVar13 + 0xac)" identifier = (pointer_expression "*(byte *)(iVar13 + 0xac)" * (cast_expression "(byte *)(iVar13 + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xac)" ( (binary_expression "iVar13 + 0xac" identifier + number_literal) ))))) ;) (expression_statement "pGVar9 = (General_options *)(uint)bVar12;" (assignment_expression "pGVar9 = (General_options *)(uint)bVar12" identifier = (cast_expression "(General_options *)(uint)bVar12" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppPVar17 = pppPVar16;" (assignment_expression "pppPVar17 = pppPVar16" identifier = identifier) ;) (if_statement "if (bVar12 != 0) {\n    if (pGVar15 == (General_options *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }" if (parenthesized_expression "(bVar12 != 0)" ( (binary_expression "bVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    if (pGVar15 == (General_options *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }" { (if_statement "if (pGVar15 == (General_options *)0x0) goto LAB_000aeb68;" if (parenthesized_expression "(pGVar15 == (General_options *)0x0)" ( (binary_expression "pGVar15 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000aeb68;" goto statement_identifier ;)) (goto_statement "goto LAB_000ae822;" goto statement_identifier ;) })) (if_statement "if (pGVar15 == (General_options *)0x0) {\nLAB_000aeb68:\n    *(General_options **)((int)pppPVar17 + -4) = pGVar9;\n    *(char **)((int)pppPVar17 + -8) = "options";\n    *(undefined4 *)((int)pppPVar17 + -0xc) = 0x5c;\n    *(char **)((int)pppPVar17 + -0x10) = "../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)pppPVar17 + -0x14) = &UNK_000aeb7e;\n    do_gold_unreachable(*(char **)((int)pppPVar17 + -0x10),*(int *)((int)pppPVar17 + -0xc),\n                        *(char **)((int)pppPVar17 + -8));\n  }" if (parenthesized_expression "(pGVar15 == (General_options *)0x0)" ( (binary_expression "pGVar15 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000aeb68:\n    *(General_options **)((int)pppPVar17 + -4) = pGVar9;\n    *(char **)((int)pppPVar17 + -8) = "options";\n    *(undefined4 *)((int)pppPVar17 + -0xc) = 0x5c;\n    *(char **)((int)pppPVar17 + -0x10) = "../../gold/parameters.h";\n                    /* WARNING: Subroutine does not return */\n    *(undefined **)((int)pppPVar17 + -0x14) = &UNK_000aeb7e;\n    do_gold_unreachable(*(char **)((int)pppPVar17 + -0x10),*(int *)((int)pppPVar17 + -0xc),\n                        *(char **)((int)pppPVar17 + -8));\n  }" { (labeled_statement "LAB_000aeb68:\n    *(General_options **)((int)pppPVar17 + -4) = pGVar9;" statement_identifier : (expression_statement "*(General_options **)((int)pppPVar17 + -4) = pGVar9;" (assignment_expression "*(General_options **)((int)pppPVar17 + -4) = pGVar9" (pointer_expression "*(General_options **)((int)pppPVar17 + -4)" * (cast_expression "(General_options **)((int)pppPVar17 + -4)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar17 + -4)" ( (binary_expression "(int)pppPVar17 + -4" (cast_expression "(int)pppPVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(char **)((int)pppPVar17 + -8) = "options";" (assignment_expression "*(char **)((int)pppPVar17 + -8) = "options"" (pointer_expression "*(char **)((int)pppPVar17 + -8)" * (cast_expression "(char **)((int)pppPVar17 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar17 + -8)" ( (binary_expression "(int)pppPVar17 + -8" (cast_expression "(int)pppPVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""options"" " string_content ")) ;) (expression_statement "*(undefined4 *)((int)pppPVar17 + -0xc) = 0x5c;" (assignment_expression "*(undefined4 *)((int)pppPVar17 + -0xc) = 0x5c" (pointer_expression "*(undefined4 *)((int)pppPVar17 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar17 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar17 + -0xc)" ( (binary_expression "(int)pppPVar17 + -0xc" (cast_expression "(int)pppPVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)((int)pppPVar17 + -0x10) = "../../gold/parameters.h";" (assignment_expression "*(char **)((int)pppPVar17 + -0x10) = "../../gold/parameters.h"" (pointer_expression "*(char **)((int)pppPVar17 + -0x10)" * (cast_expression "(char **)((int)pppPVar17 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar17 + -0x10)" ( (binary_expression "(int)pppPVar17 + -0x10" (cast_expression "(int)pppPVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""../../gold/parameters.h"" " string_content ")) ;) comment (expression_statement "*(undefined **)((int)pppPVar17 + -0x14) = &UNK_000aeb7e;" (assignment_expression "*(undefined **)((int)pppPVar17 + -0x14) = &UNK_000aeb7e" (pointer_expression "*(undefined **)((int)pppPVar17 + -0x14)" * (cast_expression "(undefined **)((int)pppPVar17 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar17 + -0x14)" ( (binary_expression "(int)pppPVar17 + -0x14" (cast_expression "(int)pppPVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_000aeb7e" & identifier)) ;) (expression_statement "do_gold_unreachable(*(char **)((int)pppPVar17 + -0x10),*(int *)((int)pppPVar17 + -0xc),\n                        *(char **)((int)pppPVar17 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)pppPVar17 + -0x10),*(int *)((int)pppPVar17 + -0xc),\n                        *(char **)((int)pppPVar17 + -8))" identifier (argument_list "(*(char **)((int)pppPVar17 + -0x10),*(int *)((int)pppPVar17 + -0xc),\n                        *(char **)((int)pppPVar17 + -8))" ( (pointer_expression "*(char **)((int)pppPVar17 + -0x10)" * (cast_expression "(char **)((int)pppPVar17 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar17 + -0x10)" ( (binary_expression "(int)pppPVar17 + -0x10" (cast_expression "(int)pppPVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)pppPVar17 + -0xc)" * (cast_expression "(int *)((int)pppPVar17 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar17 + -0xc)" ( (binary_expression "(int)pppPVar17 + -0xc" (cast_expression "(int)pppPVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)pppPVar17 + -8)" * (cast_expression "(char **)((int)pppPVar17 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar17 + -8)" ( (binary_expression "(int)pppPVar17 + -8" (cast_expression "(int)pppPVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar26 = (pGVar15->relocatable_).value == false;" (assignment_expression "bVar26 = (pGVar15->relocatable_).value == false" identifier = (binary_expression "(pGVar15->relocatable_).value == false" (field_expression "(pGVar15->relocatable_).value" (parenthesized_expression "(pGVar15->relocatable_)" ( (field_expression "pGVar15->relocatable_" identifier -> field_identifier) )) . field_identifier) == false)) ;) (if_statement "if (!bVar26) goto LAB_000aea50;" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (goto_statement "goto LAB_000aea50;" goto statement_identifier ;)) (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 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 "pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);" (assignment_expression "pbVar22 = *(byte **)((int)pppPVar16 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar16 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar16 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n    if (iVar13 == 0) break;\n    iVar13 = iVar13 + -1;\n    bVar5 = *pbVar18 < *pbVar22;\n    bVar26 = *pbVar18 == *pbVar22;\n    pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n    pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n  } while (bVar26);" do (compound_statement "{\n    if (iVar13 == 0) break;\n    iVar13 = iVar13 + -1;\n    bVar5 = *pbVar18 < *pbVar22;\n    bVar26 = *pbVar18 == *pbVar22;\n    pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n    pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n  }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar5 = *pbVar18 < *pbVar22;" (assignment_expression "bVar5 = *pbVar18 < *pbVar22" identifier = (binary_expression "*pbVar18 < *pbVar22" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar26 = *pbVar18 == *pbVar22;" (assignment_expression "bVar26 = *pbVar18 == *pbVar22" identifier = (binary_expression "*pbVar18 == *pbVar22" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar5 = (!bVar5 && !bVar26) == bVar5;" (assignment_expression "bVar5 = (!bVar5 && !bVar26) == bVar5" identifier = (binary_expression "(!bVar5 && !bVar26) == bVar5" (parenthesized_expression "(!bVar5 && !bVar26)" ( (binary_expression "!bVar5 && !bVar26" (unary_expression "!bVar5" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar5) {\nLAB_000ae7d8:\n    pOVar8->field_0x91 = pOVar8->field_0x91 | 8;\n    bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);\n    pGVar9 = (General_options *)(uint)bVar12;\n    if ((pGVar15->text_reorder_).value == false) {\nLAB_000aeb99:\n      if (bVar12 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar12 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar6 = (pGVar15->relocatable_).value;\n    if (*(char *)(*(int *)((int)pppPVar16 + 0x60) + 0x1cd) != '\0') goto LAB_000aea64;\n    if ((bool)cVar6 == false) {\n      *(General_options **)((int)pppPVar16 + 0xc) = pGVar15;\n      puVar20 = special_ordering_of_input_section(char_const*)::text_section_sort;\n      *(char ***)((int)pppPVar16 + 8) = gdb_fast_lookup_sections;\n      pcVar7 = ".text.unlikely";\n      sVar11 = 0xe;\n      while( true ) {\n        *(size_t *)((int)pppPVar16 + -8) = sVar11;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebdd;\n        iVar13 = strncmp(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),\n                         *(size_t *)((int)pppPVar16 + -8));\n        if (iVar13 == 0) break;\n        puVar20 = (undefined1 *)((int)puVar20 + 4);\n        if (*(undefined4 **)((int)pppPVar16 + 8) == (undefined4 *)puVar20) goto LAB_000aea6c;\n        pcVar7 = *(char **)puVar20;\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebfc;\n        sVar11 = strlen(*(char **)((int)pppPVar16 + -0x10));\n      }\n      pGVar15 = *(General_options **)((int)pppPVar16 + 0xc);\n      pOVar8->field_0x91 = pOVar8->field_0x91 | 8;\n      bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);\n      pGVar9 = (General_options *)(uint)bVar12;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar13 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    bVar26 = false;\n    bVar5 = (!bVar24 && !bVar5) == bVar24;\n    if (bVar5) goto LAB_000ae7d8;\n    iVar13 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar26 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    bVar24 = false;\n    bVar5 = (!bVar26 && !bVar5) == bVar26;\n    if (bVar5) goto LAB_000ae7d8;\n    iVar13 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    if ((!bVar24 && !bVar5) == bVar24) goto LAB_000ae7d8;\n    bVar5 = false;\n    bVar26 = (pGVar15->ctors_in_init_array_).value == false;\n    if (!bVar26) {\n      iVar13 = 7;\n      pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n      pbVar22 = (byte *)".ctors";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        bVar5 = *pbVar18 < *pbVar22;\n        bVar26 = *pbVar18 == *pbVar22;\n        pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n        pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n      } while (bVar26);\n      bVar24 = false;\n      bVar5 = (!bVar5 && !bVar26) == bVar5;\n      if (!bVar5) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".dtors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar24 = *pbVar18 < *pbVar22;\n          bVar5 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar5);\n        if ((!bVar24 && !bVar5) != bVar24) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if ((pGVar15->text_reorder_).value != false) goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar6 = (pGVar15->relocatable_).value;\nLAB_000aea64:\n    if (cVar6 == '\0') {\nLAB_000aea6c:\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14);\n      bVar5 = uVar21 < 4;\n      bVar26 = uVar21 == 4;\n      if (4 < uVar21) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".ctors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar5 = *pbVar18 < *pbVar22;\n          bVar26 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar5 = (!bVar5 && !bVar26) == bVar5;\n        if (bVar5) {\nLAB_000aeab0:\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".init_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) goto LAB_000aeb18;\n        }\n        else {\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }\n        *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n        *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 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)pppPVar16 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24);\n        *(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 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)pppPVar16 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10);\n        *(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff;\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        pGVar9 = (General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\nLAB_000ae7d8:\n    pOVar8->field_0x91 = pOVar8->field_0x91 | 8;\n    bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);\n    pGVar9 = (General_options *)(uint)bVar12;\n    if ((pGVar15->text_reorder_).value == false) {\nLAB_000aeb99:\n      if (bVar12 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar12 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar6 = (pGVar15->relocatable_).value;\n    if (*(char *)(*(int *)((int)pppPVar16 + 0x60) + 0x1cd) != '\0') goto LAB_000aea64;\n    if ((bool)cVar6 == false) {\n      *(General_options **)((int)pppPVar16 + 0xc) = pGVar15;\n      puVar20 = special_ordering_of_input_section(char_const*)::text_section_sort;\n      *(char ***)((int)pppPVar16 + 8) = gdb_fast_lookup_sections;\n      pcVar7 = ".text.unlikely";\n      sVar11 = 0xe;\n      while( true ) {\n        *(size_t *)((int)pppPVar16 + -8) = sVar11;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebdd;\n        iVar13 = strncmp(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),\n                         *(size_t *)((int)pppPVar16 + -8));\n        if (iVar13 == 0) break;\n        puVar20 = (undefined1 *)((int)puVar20 + 4);\n        if (*(undefined4 **)((int)pppPVar16 + 8) == (undefined4 *)puVar20) goto LAB_000aea6c;\n        pcVar7 = *(char **)puVar20;\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebfc;\n        sVar11 = strlen(*(char **)((int)pppPVar16 + -0x10));\n      }\n      pGVar15 = *(General_options **)((int)pppPVar16 + 0xc);\n      pOVar8->field_0x91 = pOVar8->field_0x91 | 8;\n      bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);\n      pGVar9 = (General_options *)(uint)bVar12;\n      goto LAB_000aeb99;\n    }\n  }" { (labeled_statement "LAB_000ae7d8:\n    pOVar8->field_0x91 = pOVar8->field_0x91 | 8;" statement_identifier : (expression_statement "pOVar8->field_0x91 = pOVar8->field_0x91 | 8;" (assignment_expression "pOVar8->field_0x91 = pOVar8->field_0x91 | 8" (field_expression "pOVar8->field_0x91" identifier -> field_identifier) = (binary_expression "pOVar8->field_0x91 | 8" (field_expression "pOVar8->field_0x91" identifier -> field_identifier) | number_literal)) ;)) (expression_statement "bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);" (assignment_expression "bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac)" identifier = (pointer_expression "*(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac)" * (cast_expression "(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppPVar16 + 4) + 0xac)" ( (binary_expression "*(int *)((int)pppPVar16 + 4) + 0xac" (pointer_expression "*(int *)((int)pppPVar16 + 4)" * (cast_expression "(int *)((int)pppPVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 4)" ( (binary_expression "(int)pppPVar16 + 4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pGVar9 = (General_options *)(uint)bVar12;" (assignment_expression "pGVar9 = (General_options *)(uint)bVar12" identifier = (cast_expression "(General_options *)(uint)bVar12" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((pGVar15->text_reorder_).value == false) {\nLAB_000aeb99:\n      if (bVar12 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }" if (parenthesized_expression "((pGVar15->text_reorder_).value == false)" ( (binary_expression "(pGVar15->text_reorder_).value == false" (field_expression "(pGVar15->text_reorder_).value" (parenthesized_expression "(pGVar15->text_reorder_)" ( (field_expression "pGVar15->text_reorder_" identifier -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\nLAB_000aeb99:\n      if (bVar12 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }" { (labeled_statement "LAB_000aeb99:\n      if (bVar12 != 0) goto LAB_000ae822;" statement_identifier : (if_statement "if (bVar12 != 0) goto LAB_000ae822;" if (parenthesized_expression "(bVar12 != 0)" ( (binary_expression "bVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ae822;" goto statement_identifier ;))) (goto_statement "goto LAB_000aea5d;" goto statement_identifier ;) })) (if_statement "if (bVar12 != 0) goto LAB_000ae822;" if (parenthesized_expression "(bVar12 != 0)" ( (binary_expression "bVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ae822;" goto statement_identifier ;)) (labeled_statement "LAB_000ae7fd:\n    cVar6 = (pGVar15->relocatable_).value;" statement_identifier : (expression_statement "cVar6 = (pGVar15->relocatable_).value;" (assignment_expression "cVar6 = (pGVar15->relocatable_).value" identifier = (field_expression "(pGVar15->relocatable_).value" (parenthesized_expression "(pGVar15->relocatable_)" ( (field_expression "pGVar15->relocatable_" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if (*(char *)(*(int *)((int)pppPVar16 + 0x60) + 0x1cd) != '\0') goto LAB_000aea64;" if (parenthesized_expression "(*(char *)(*(int *)((int)pppPVar16 + 0x60) + 0x1cd) != '\0')" ( (binary_expression "*(char *)(*(int *)((int)pppPVar16 + 0x60) + 0x1cd) != '\0'" (pointer_expression "*(char *)(*(int *)((int)pppPVar16 + 0x60) + 0x1cd)" * (cast_expression "(char *)(*(int *)((int)pppPVar16 + 0x60) + 0x1cd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppPVar16 + 0x60) + 0x1cd)" ( (binary_expression "*(int *)((int)pppPVar16 + 0x60) + 0x1cd" (pointer_expression "*(int *)((int)pppPVar16 + 0x60)" * (cast_expression "(int *)((int)pppPVar16 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x60)" ( (binary_expression "(int)pppPVar16 + 0x60" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000aea64;" goto statement_identifier ;)) (if_statement "if ((bool)cVar6 == false) {\n      *(General_options **)((int)pppPVar16 + 0xc) = pGVar15;\n      puVar20 = special_ordering_of_input_section(char_const*)::text_section_sort;\n      *(char ***)((int)pppPVar16 + 8) = gdb_fast_lookup_sections;\n      pcVar7 = ".text.unlikely";\n      sVar11 = 0xe;\n      while( true ) {\n        *(size_t *)((int)pppPVar16 + -8) = sVar11;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebdd;\n        iVar13 = strncmp(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),\n                         *(size_t *)((int)pppPVar16 + -8));\n        if (iVar13 == 0) break;\n        puVar20 = (undefined1 *)((int)puVar20 + 4);\n        if (*(undefined4 **)((int)pppPVar16 + 8) == (undefined4 *)puVar20) goto LAB_000aea6c;\n        pcVar7 = *(char **)puVar20;\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebfc;\n        sVar11 = strlen(*(char **)((int)pppPVar16 + -0x10));\n      }\n      pGVar15 = *(General_options **)((int)pppPVar16 + 0xc);\n      pOVar8->field_0x91 = pOVar8->field_0x91 | 8;\n      bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);\n      pGVar9 = (General_options *)(uint)bVar12;\n      goto LAB_000aeb99;\n    }" if (parenthesized_expression "((bool)cVar6 == false)" ( (binary_expression "(bool)cVar6 == false" (cast_expression "(bool)cVar6" ( (type_descriptor "bool" primitive_type) ) identifier) == false) )) (compound_statement "{\n      *(General_options **)((int)pppPVar16 + 0xc) = pGVar15;\n      puVar20 = special_ordering_of_input_section(char_const*)::text_section_sort;\n      *(char ***)((int)pppPVar16 + 8) = gdb_fast_lookup_sections;\n      pcVar7 = ".text.unlikely";\n      sVar11 = 0xe;\n      while( true ) {\n        *(size_t *)((int)pppPVar16 + -8) = sVar11;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebdd;\n        iVar13 = strncmp(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),\n                         *(size_t *)((int)pppPVar16 + -8));\n        if (iVar13 == 0) break;\n        puVar20 = (undefined1 *)((int)puVar20 + 4);\n        if (*(undefined4 **)((int)pppPVar16 + 8) == (undefined4 *)puVar20) goto LAB_000aea6c;\n        pcVar7 = *(char **)puVar20;\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebfc;\n        sVar11 = strlen(*(char **)((int)pppPVar16 + -0x10));\n      }\n      pGVar15 = *(General_options **)((int)pppPVar16 + 0xc);\n      pOVar8->field_0x91 = pOVar8->field_0x91 | 8;\n      bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);\n      pGVar9 = (General_options *)(uint)bVar12;\n      goto LAB_000aeb99;\n    }" { (expression_statement "*(General_options **)((int)pppPVar16 + 0xc) = pGVar15;" (assignment_expression "*(General_options **)((int)pppPVar16 + 0xc) = pGVar15" (pointer_expression "*(General_options **)((int)pppPVar16 + 0xc)" * (cast_expression "(General_options **)((int)pppPVar16 + 0xc)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0xc)" ( (binary_expression "(int)pppPVar16 + 0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar20 = special_ordering_of_input_section(char_const*)::text_section_sort;" (assignment_expression "puVar20 = 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)pppPVar16 + 8) = gdb_fast_lookup_sections;" (assignment_expression "*(char ***)((int)pppPVar16 + 8) = gdb_fast_lookup_sections" (pointer_expression "*(char ***)((int)pppPVar16 + 8)" * (cast_expression "(char ***)((int)pppPVar16 + 8)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)pppPVar16 + 8)" ( (binary_expression "(int)pppPVar16 + 8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar7 = ".text.unlikely";" (assignment_expression "pcVar7 = ".text.unlikely"" identifier = (string_literal "".text.unlikely"" " string_content ")) ;) (expression_statement "sVar11 = 0xe;" (assignment_expression "sVar11 = 0xe" identifier = number_literal) ;) (while_statement "while( true ) {\n        *(size_t *)((int)pppPVar16 + -8) = sVar11;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebdd;\n        iVar13 = strncmp(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),\n                         *(size_t *)((int)pppPVar16 + -8));\n        if (iVar13 == 0) break;\n        puVar20 = (undefined1 *)((int)puVar20 + 4);\n        if (*(undefined4 **)((int)pppPVar16 + 8) == (undefined4 *)puVar20) goto LAB_000aea6c;\n        pcVar7 = *(char **)puVar20;\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebfc;\n        sVar11 = strlen(*(char **)((int)pppPVar16 + -0x10));\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        *(size_t *)((int)pppPVar16 + -8) = sVar11;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x6c);\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebdd;\n        iVar13 = strncmp(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),\n                         *(size_t *)((int)pppPVar16 + -8));\n        if (iVar13 == 0) break;\n        puVar20 = (undefined1 *)((int)puVar20 + 4);\n        if (*(undefined4 **)((int)pppPVar16 + 8) == (undefined4 *)puVar20) goto LAB_000aea6c;\n        pcVar7 = *(char **)puVar20;\n        *(char **)((int)pppPVar16 + -0x10) = pcVar7;\n        *(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebfc;\n        sVar11 = strlen(*(char **)((int)pppPVar16 + -0x10));\n      }" { (expression_statement "*(size_t *)((int)pppPVar16 + -8) = sVar11;" (assignment_expression "*(size_t *)((int)pppPVar16 + -8) = sVar11" (pointer_expression "*(size_t *)((int)pppPVar16 + -8)" * (cast_expression "(size_t *)((int)pppPVar16 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x6c);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x6c)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x6c)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char **)((int)pppPVar16 + -0x10) = pcVar7;" (assignment_expression "*(char **)((int)pppPVar16 + -0x10) = pcVar7" (pointer_expression "*(char **)((int)pppPVar16 + -0x10)" * (cast_expression "(char **)((int)pppPVar16 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebdd;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebdd" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x14)" ( (binary_expression "(int)pppPVar16 + -0x14" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar13 = strncmp(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),\n                         *(size_t *)((int)pppPVar16 + -8));" (assignment_expression "iVar13 = strncmp(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),\n                         *(size_t *)((int)pppPVar16 + -8))" identifier = (call_expression "strncmp(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),\n                         *(size_t *)((int)pppPVar16 + -8))" identifier (argument_list "(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),\n                         *(size_t *)((int)pppPVar16 + -8))" ( (pointer_expression "*(char **)((int)pppPVar16 + -0x10)" * (cast_expression "(char **)((int)pppPVar16 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)pppPVar16 + -0xc)" * (cast_expression "(char **)((int)pppPVar16 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)pppPVar16 + -8)" * (cast_expression "(size_t *)((int)pppPVar16 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar20 = (undefined1 *)((int)puVar20 + 4);" (assignment_expression "puVar20 = (undefined1 *)((int)puVar20 + 4)" identifier = (cast_expression "(undefined1 *)((int)puVar20 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + 4)" ( (binary_expression "(int)puVar20 + 4" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(undefined4 **)((int)pppPVar16 + 8) == (undefined4 *)puVar20) goto LAB_000aea6c;" if (parenthesized_expression "(*(undefined4 **)((int)pppPVar16 + 8) == (undefined4 *)puVar20)" ( (binary_expression "*(undefined4 **)((int)pppPVar16 + 8) == (undefined4 *)puVar20" (pointer_expression "*(undefined4 **)((int)pppPVar16 + 8)" * (cast_expression "(undefined4 **)((int)pppPVar16 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 8)" ( (binary_expression "(int)pppPVar16 + 8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (cast_expression "(undefined4 *)puVar20" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (goto_statement "goto LAB_000aea6c;" goto statement_identifier ;)) (expression_statement "pcVar7 = *(char **)puVar20;" (assignment_expression "pcVar7 = *(char **)puVar20" identifier = (pointer_expression "*(char **)puVar20" * (cast_expression "(char **)puVar20" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(char **)((int)pppPVar16 + -0x10) = pcVar7;" (assignment_expression "*(char **)((int)pppPVar16 + -0x10) = pcVar7" (pointer_expression "*(char **)((int)pppPVar16 + -0x10)" * (cast_expression "(char **)((int)pppPVar16 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebfc;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x14) = 0xaebfc" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x14)" ( (binary_expression "(int)pppPVar16 + -0x14" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "sVar11 = strlen(*(char **)((int)pppPVar16 + -0x10));" (assignment_expression "sVar11 = strlen(*(char **)((int)pppPVar16 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)pppPVar16 + -0x10))" identifier (argument_list "(*(char **)((int)pppPVar16 + -0x10))" ( (pointer_expression "*(char **)((int)pppPVar16 + -0x10)" * (cast_expression "(char **)((int)pppPVar16 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) })) (expression_statement "pGVar15 = *(General_options **)((int)pppPVar16 + 0xc);" (assignment_expression "pGVar15 = *(General_options **)((int)pppPVar16 + 0xc)" identifier = (pointer_expression "*(General_options **)((int)pppPVar16 + 0xc)" * (cast_expression "(General_options **)((int)pppPVar16 + 0xc)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0xc)" ( (binary_expression "(int)pppPVar16 + 0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pOVar8->field_0x91 = pOVar8->field_0x91 | 8;" (assignment_expression "pOVar8->field_0x91 = pOVar8->field_0x91 | 8" (field_expression "pOVar8->field_0x91" identifier -> field_identifier) = (binary_expression "pOVar8->field_0x91 | 8" (field_expression "pOVar8->field_0x91" identifier -> field_identifier) | number_literal)) ;) (expression_statement "bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac);" (assignment_expression "bVar12 = *(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac)" identifier = (pointer_expression "*(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac)" * (cast_expression "(byte *)(*(int *)((int)pppPVar16 + 4) + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppPVar16 + 4) + 0xac)" ( (binary_expression "*(int *)((int)pppPVar16 + 4) + 0xac" (pointer_expression "*(int *)((int)pppPVar16 + 4)" * (cast_expression "(int *)((int)pppPVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 4)" ( (binary_expression "(int)pppPVar16 + 4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pGVar9 = (General_options *)(uint)bVar12;" (assignment_expression "pGVar9 = (General_options *)(uint)bVar12" identifier = (cast_expression "(General_options *)(uint)bVar12" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (goto_statement "goto LAB_000aeb99;" goto statement_identifier ;) })) }) (else_clause "else {\n    iVar13 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    bVar26 = false;\n    bVar5 = (!bVar24 && !bVar5) == bVar24;\n    if (bVar5) goto LAB_000ae7d8;\n    iVar13 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar26 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    bVar24 = false;\n    bVar5 = (!bVar26 && !bVar5) == bVar26;\n    if (bVar5) goto LAB_000ae7d8;\n    iVar13 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    if ((!bVar24 && !bVar5) == bVar24) goto LAB_000ae7d8;\n    bVar5 = false;\n    bVar26 = (pGVar15->ctors_in_init_array_).value == false;\n    if (!bVar26) {\n      iVar13 = 7;\n      pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n      pbVar22 = (byte *)".ctors";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        bVar5 = *pbVar18 < *pbVar22;\n        bVar26 = *pbVar18 == *pbVar22;\n        pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n        pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n      } while (bVar26);\n      bVar24 = false;\n      bVar5 = (!bVar5 && !bVar26) == bVar5;\n      if (!bVar5) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".dtors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar24 = *pbVar18 < *pbVar22;\n          bVar5 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar5);\n        if ((!bVar24 && !bVar5) != bVar24) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if ((pGVar15->text_reorder_).value != false) goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar6 = (pGVar15->relocatable_).value;\nLAB_000aea64:\n    if (cVar6 == '\0') {\nLAB_000aea6c:\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14);\n      bVar5 = uVar21 < 4;\n      bVar26 = uVar21 == 4;\n      if (4 < uVar21) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".ctors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar5 = *pbVar18 < *pbVar22;\n          bVar26 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar5 = (!bVar5 && !bVar26) == bVar5;\n        if (bVar5) {\nLAB_000aeab0:\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".init_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) goto LAB_000aeb18;\n        }\n        else {\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }\n        *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n        *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 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)pppPVar16 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24);\n        *(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 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)pppPVar16 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10);\n        *(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff;\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        pGVar9 = (General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }" else (compound_statement "{\n    iVar13 = 7;\n    pbVar18 = (byte *)".dtors.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    bVar26 = false;\n    bVar5 = (!bVar24 && !bVar5) == bVar24;\n    if (bVar5) goto LAB_000ae7d8;\n    iVar13 = 0xc;\n    pbVar18 = (byte *)".init_array.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar26 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    bVar24 = false;\n    bVar5 = (!bVar26 && !bVar5) == bVar26;\n    if (bVar5) goto LAB_000ae7d8;\n    iVar13 = 0xc;\n    pbVar18 = (byte *)".fini_array.";\n    pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n    do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);\n    if ((!bVar24 && !bVar5) == bVar24) goto LAB_000ae7d8;\n    bVar5 = false;\n    bVar26 = (pGVar15->ctors_in_init_array_).value == false;\n    if (!bVar26) {\n      iVar13 = 7;\n      pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n      pbVar22 = (byte *)".ctors";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        bVar5 = *pbVar18 < *pbVar22;\n        bVar26 = *pbVar18 == *pbVar22;\n        pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n        pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n      } while (bVar26);\n      bVar24 = false;\n      bVar5 = (!bVar5 && !bVar26) == bVar5;\n      if (!bVar5) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".dtors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar24 = *pbVar18 < *pbVar22;\n          bVar5 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar5);\n        if ((!bVar24 && !bVar5) != bVar24) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if ((pGVar15->text_reorder_).value != false) goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar6 = (pGVar15->relocatable_).value;\nLAB_000aea64:\n    if (cVar6 == '\0') {\nLAB_000aea6c:\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14);\n      bVar5 = uVar21 < 4;\n      bVar26 = uVar21 == 4;\n      if (4 < uVar21) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".ctors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar5 = *pbVar18 < *pbVar22;\n          bVar26 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar5 = (!bVar5 && !bVar26) == bVar5;\n        if (bVar5) {\nLAB_000aeab0:\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".init_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) goto LAB_000aeb18;\n        }\n        else {\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }\n        *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n        *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 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)pppPVar16 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24);\n        *(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 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)pppPVar16 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10);\n        *(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff;\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        pGVar9 = (General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }" { (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 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 "pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);" (assignment_expression "pbVar22 = *(byte **)((int)pppPVar16 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar16 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar16 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);" do (compound_statement "{\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar18 < *pbVar22;" (assignment_expression "bVar24 = *pbVar18 < *pbVar22" identifier = (binary_expression "*pbVar18 < *pbVar22" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar5 = *pbVar18 == *pbVar22;" (assignment_expression "bVar5 = *pbVar18 == *pbVar22" identifier = (binary_expression "*pbVar18 == *pbVar22" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "bVar5 = (!bVar24 && !bVar5) == bVar24;" (assignment_expression "bVar5 = (!bVar24 && !bVar5) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar5) == bVar24" (parenthesized_expression "(!bVar24 && !bVar5)" ( (binary_expression "!bVar24 && !bVar5" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar5" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar5) goto LAB_000ae7d8;" if (parenthesized_expression "(bVar5)" ( identifier )) (goto_statement "goto LAB_000ae7d8;" goto statement_identifier ;)) (expression_statement "iVar13 = 0xc;" (assignment_expression "iVar13 = 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 "pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);" (assignment_expression "pbVar22 = *(byte **)((int)pppPVar16 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar16 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar16 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar26 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);" do (compound_statement "{\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar26 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar18 < *pbVar22;" (assignment_expression "bVar26 = *pbVar18 < *pbVar22" identifier = (binary_expression "*pbVar18 < *pbVar22" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar5 = *pbVar18 == *pbVar22;" (assignment_expression "bVar5 = *pbVar18 == *pbVar22" identifier = (binary_expression "*pbVar18 == *pbVar22" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar5 = (!bVar26 && !bVar5) == bVar26;" (assignment_expression "bVar5 = (!bVar26 && !bVar5) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar5) == bVar26" (parenthesized_expression "(!bVar26 && !bVar5)" ( (binary_expression "!bVar26 && !bVar5" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar5" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar5) goto LAB_000ae7d8;" if (parenthesized_expression "(bVar5)" ( identifier )) (goto_statement "goto LAB_000ae7d8;" goto statement_identifier ;)) (expression_statement "iVar13 = 0xc;" (assignment_expression "iVar13 = 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 "pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);" (assignment_expression "pbVar22 = *(byte **)((int)pppPVar16 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar16 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar16 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    } while (bVar5);" do (compound_statement "{\n      if (iVar13 == 0) break;\n      iVar13 = iVar13 + -1;\n      bVar24 = *pbVar18 < *pbVar22;\n      bVar5 = *pbVar18 == *pbVar22;\n      pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n      pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n    }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar18 < *pbVar22;" (assignment_expression "bVar24 = *pbVar18 < *pbVar22" identifier = (binary_expression "*pbVar18 < *pbVar22" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar5 = *pbVar18 == *pbVar22;" (assignment_expression "bVar5 = *pbVar18 == *pbVar22" identifier = (binary_expression "*pbVar18 == *pbVar22" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar5) == bVar24) goto LAB_000ae7d8;" if (parenthesized_expression "((!bVar24 && !bVar5) == bVar24)" ( (binary_expression "(!bVar24 && !bVar5) == bVar24" (parenthesized_expression "(!bVar24 && !bVar5)" ( (binary_expression "!bVar24 && !bVar5" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar5" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_000ae7d8;" goto statement_identifier ;)) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar26 = (pGVar15->ctors_in_init_array_).value == false;" (assignment_expression "bVar26 = (pGVar15->ctors_in_init_array_).value == false" identifier = (binary_expression "(pGVar15->ctors_in_init_array_).value == false" (field_expression "(pGVar15->ctors_in_init_array_).value" (parenthesized_expression "(pGVar15->ctors_in_init_array_)" ( (field_expression "pGVar15->ctors_in_init_array_" identifier -> field_identifier) )) . field_identifier) == false)) ;) (if_statement "if (!bVar26) {\n      iVar13 = 7;\n      pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n      pbVar22 = (byte *)".ctors";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        bVar5 = *pbVar18 < *pbVar22;\n        bVar26 = *pbVar18 == *pbVar22;\n        pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n        pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n      } while (bVar26);\n      bVar24 = false;\n      bVar5 = (!bVar5 && !bVar26) == bVar5;\n      if (!bVar5) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".dtors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar24 = *pbVar18 < *pbVar22;\n          bVar5 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar5);\n        if ((!bVar24 && !bVar5) != bVar24) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n      iVar13 = 7;\n      pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n      pbVar22 = (byte *)".ctors";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        bVar5 = *pbVar18 < *pbVar22;\n        bVar26 = *pbVar18 == *pbVar22;\n        pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n        pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n      } while (bVar26);\n      bVar24 = false;\n      bVar5 = (!bVar5 && !bVar26) == bVar5;\n      if (!bVar5) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".dtors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar24 = *pbVar18 < *pbVar22;\n          bVar5 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar5);\n        if ((!bVar24 && !bVar5) != bVar24) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }" { (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);" (assignment_expression "pbVar18 = *(byte **)((int)pppPVar16 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar16 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar16 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) 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 "))) ;) (do_statement "do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        bVar5 = *pbVar18 < *pbVar22;\n        bVar26 = *pbVar18 == *pbVar22;\n        pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n        pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n      } while (bVar26);" do (compound_statement "{\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        bVar5 = *pbVar18 < *pbVar22;\n        bVar26 = *pbVar18 == *pbVar22;\n        pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n        pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n      }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar5 = *pbVar18 < *pbVar22;" (assignment_expression "bVar5 = *pbVar18 < *pbVar22" identifier = (binary_expression "*pbVar18 < *pbVar22" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar26 = *pbVar18 == *pbVar22;" (assignment_expression "bVar26 = *pbVar18 == *pbVar22" identifier = (binary_expression "*pbVar18 == *pbVar22" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar5 = (!bVar5 && !bVar26) == bVar5;" (assignment_expression "bVar5 = (!bVar5 && !bVar26) == bVar5" identifier = (binary_expression "(!bVar5 && !bVar26) == bVar5" (parenthesized_expression "(!bVar5 && !bVar26)" ( (binary_expression "!bVar5 && !bVar26" (unary_expression "!bVar5" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar5) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".dtors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar24 = *pbVar18 < *pbVar22;\n          bVar5 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar5);\n        if ((!bVar24 && !bVar5) != bVar24) goto LAB_000aea50;\n      }" if (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) )) (compound_statement "{\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".dtors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar24 = *pbVar18 < *pbVar22;\n          bVar5 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar5);\n        if ((!bVar24 && !bVar5) != bVar24) goto LAB_000aea50;\n      }" { (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);" (assignment_expression "pbVar18 = *(byte **)((int)pppPVar16 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar16 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar16 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) 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 "))) ;) (do_statement "do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar24 = *pbVar18 < *pbVar22;\n          bVar5 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar5);" do (compound_statement "{\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar24 = *pbVar18 < *pbVar22;\n          bVar5 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar18 < *pbVar22;" (assignment_expression "bVar24 = *pbVar18 < *pbVar22" identifier = (binary_expression "*pbVar18 < *pbVar22" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar5 = *pbVar18 == *pbVar22;" (assignment_expression "bVar5 = *pbVar18 == *pbVar22" identifier = (binary_expression "*pbVar18 == *pbVar22" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar5) != bVar24) goto LAB_000aea50;" if (parenthesized_expression "((!bVar24 && !bVar5) != bVar24)" ( (binary_expression "(!bVar24 && !bVar5) != bVar24" (parenthesized_expression "(!bVar24 && !bVar5)" ( (binary_expression "!bVar24 && !bVar5" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar5" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000aea50;" goto statement_identifier ;)) })) (goto_statement "goto LAB_000ae7d8;" goto statement_identifier ;) })) (labeled_statement "LAB_000aea50:\n    if ((pGVar15->text_reorder_).value != false) goto LAB_000ae7fd;" statement_identifier : (if_statement "if ((pGVar15->text_reorder_).value != false) goto LAB_000ae7fd;" if (parenthesized_expression "((pGVar15->text_reorder_).value != false)" ( (binary_expression "(pGVar15->text_reorder_).value != false" (field_expression "(pGVar15->text_reorder_).value" (parenthesized_expression "(pGVar15->text_reorder_)" ( (field_expression "pGVar15->text_reorder_" identifier -> field_identifier) )) . field_identifier) != false) )) (goto_statement "goto LAB_000ae7fd;" goto statement_identifier ;))) (labeled_statement "LAB_000aea5d:\n    cVar6 = (pGVar15->relocatable_).value;" statement_identifier : (expression_statement "cVar6 = (pGVar15->relocatable_).value;" (assignment_expression "cVar6 = (pGVar15->relocatable_).value" identifier = (field_expression "(pGVar15->relocatable_).value" (parenthesized_expression "(pGVar15->relocatable_)" ( (field_expression "pGVar15->relocatable_" identifier -> field_identifier) )) . field_identifier)) ;)) (labeled_statement "LAB_000aea64:\n    if (cVar6 == '\0') {\nLAB_000aea6c:\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14);\n      bVar5 = uVar21 < 4;\n      bVar26 = uVar21 == 4;\n      if (4 < uVar21) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".ctors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar5 = *pbVar18 < *pbVar22;\n          bVar26 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar5 = (!bVar5 && !bVar26) == bVar5;\n        if (bVar5) {\nLAB_000aeab0:\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".init_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) goto LAB_000aeb18;\n        }\n        else {\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }\n        *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n        *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 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)pppPVar16 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24);\n        *(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 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)pppPVar16 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10);\n        *(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff;\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        pGVar9 = (General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);\n        goto LAB_000ae822;\n      }\n    }" statement_identifier : (if_statement "if (cVar6 == '\0') {\nLAB_000aea6c:\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14);\n      bVar5 = uVar21 < 4;\n      bVar26 = uVar21 == 4;\n      if (4 < uVar21) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".ctors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar5 = *pbVar18 < *pbVar22;\n          bVar26 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar5 = (!bVar5 && !bVar26) == bVar5;\n        if (bVar5) {\nLAB_000aeab0:\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".init_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) goto LAB_000aeb18;\n        }\n        else {\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }\n        *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n        *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 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)pppPVar16 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24);\n        *(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 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)pppPVar16 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10);\n        *(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff;\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        pGVar9 = (General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);\n        goto LAB_000ae822;\n      }\n    }" if (parenthesized_expression "(cVar6 == '\0')" ( (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000aea6c:\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14);\n      bVar5 = uVar21 < 4;\n      bVar26 = uVar21 == 4;\n      if (4 < uVar21) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".ctors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar5 = *pbVar18 < *pbVar22;\n          bVar26 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar5 = (!bVar5 && !bVar26) == bVar5;\n        if (bVar5) {\nLAB_000aeab0:\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".init_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) goto LAB_000aeb18;\n        }\n        else {\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }\n        *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n        *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 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)pppPVar16 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24);\n        *(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 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)pppPVar16 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10);\n        *(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff;\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        pGVar9 = (General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);\n        goto LAB_000ae822;\n      }\n    }" { (labeled_statement "LAB_000aea6c:\n      uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14);" statement_identifier : (expression_statement "uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14);" (assignment_expression "uVar21 = *(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14)" identifier = (pointer_expression "*(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14)" * (cast_expression "(uint *)(**(int **)((int)pppPVar16 + 0x70) + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)((int)pppPVar16 + 0x70) + 0x14)" ( (binary_expression "**(int **)((int)pppPVar16 + 0x70) + 0x14" (pointer_expression "**(int **)((int)pppPVar16 + 0x70)" * (pointer_expression "*(int **)((int)pppPVar16 + 0x70)" * (cast_expression "(int **)((int)pppPVar16 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x70)" ( (binary_expression "(int)pppPVar16 + 0x70" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) ))))) ;)) (expression_statement "bVar5 = uVar21 < 4;" (assignment_expression "bVar5 = uVar21 < 4" identifier = (binary_expression "uVar21 < 4" identifier < number_literal)) ;) (expression_statement "bVar26 = uVar21 == 4;" (assignment_expression "bVar26 = uVar21 == 4" identifier = (binary_expression "uVar21 == 4" identifier == number_literal)) ;) (if_statement "if (4 < uVar21) {\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".ctors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar5 = *pbVar18 < *pbVar22;\n          bVar26 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar5 = (!bVar5 && !bVar26) == bVar5;\n        if (bVar5) {\nLAB_000aeab0:\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".init_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) goto LAB_000aeb18;\n        }\n        else {\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }\n        *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n        *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 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)pppPVar16 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24);\n        *(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 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)pppPVar16 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10);\n        *(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff;\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        pGVar9 = (General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);\n        goto LAB_000ae822;\n      }" if (parenthesized_expression "(4 < uVar21)" ( (binary_expression "4 < uVar21" number_literal < identifier) )) (compound_statement "{\n        iVar13 = 7;\n        pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n        pbVar22 = (byte *)".ctors";\n        do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar5 = *pbVar18 < *pbVar22;\n          bVar26 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar26);\n        bVar24 = false;\n        bVar5 = (!bVar5 && !bVar26) == bVar5;\n        if (bVar5) {\nLAB_000aeab0:\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".init_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) goto LAB_000aeb18;\n        }\n        else {\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }\n        *(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);\n        *(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 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)pppPVar16 + 0x24) = &ctors_sections_in_init_array;\n        *(undefined4 *)((int)pppPVar16 + -0xc) = 1;\n        *(undefined4 *)((int)pppPVar16 + -0x10) = 0;\n        *(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24);\n        *(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 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)pppPVar16 + -0x1c) = &ctors_sections_in_init_array;\n        *(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10);\n        *(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff;\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        pGVar9 = (General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);\n        goto LAB_000ae822;\n      }" { (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);" (assignment_expression "pbVar18 = *(byte **)((int)pppPVar16 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar16 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar16 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) 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 "))) ;) (do_statement "do {\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar5 = *pbVar18 < *pbVar22;\n          bVar26 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        } while (bVar26);" do (compound_statement "{\n          if (iVar13 == 0) break;\n          iVar13 = iVar13 + -1;\n          bVar5 = *pbVar18 < *pbVar22;\n          bVar26 = *pbVar18 == *pbVar22;\n          pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n          pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n        }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar5 = *pbVar18 < *pbVar22;" (assignment_expression "bVar5 = *pbVar18 < *pbVar22" identifier = (binary_expression "*pbVar18 < *pbVar22" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar26 = *pbVar18 == *pbVar22;" (assignment_expression "bVar26 = *pbVar18 == *pbVar22" identifier = (binary_expression "*pbVar18 == *pbVar22" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar5 = (!bVar5 && !bVar26) == bVar5;" (assignment_expression "bVar5 = (!bVar5 && !bVar26) == bVar5" identifier = (binary_expression "(!bVar5 && !bVar26) == bVar5" (parenthesized_expression "(!bVar5 && !bVar26)" ( (binary_expression "!bVar5 && !bVar26" (unary_expression "!bVar5" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar5) {\nLAB_000aeab0:\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".init_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) goto LAB_000aeb18;\n        }\n        else {\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\nLAB_000aeab0:\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".init_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) goto LAB_000aeb18;\n        }" { (labeled_statement "LAB_000aeab0:\n          bVar26 = false;" statement_identifier : (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;)) (expression_statement "iVar13 = 0xc;" (assignment_expression "iVar13 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)pOVar8->name_;" (assignment_expression "pbVar18 = (byte *)pOVar8->name_" identifier = (cast_expression "(byte *)pOVar8->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar8->name_" identifier -> field_identifier))) ;) (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 "))) ;) (do_statement "do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);" do (compound_statement "{\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar18 < *pbVar22;" (assignment_expression "bVar26 = *pbVar18 < *pbVar22" identifier = (binary_expression "*pbVar18 < *pbVar22" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar5 = *pbVar18 == *pbVar22;" (assignment_expression "bVar5 = *pbVar18 == *pbVar22" identifier = (binary_expression "*pbVar18 == *pbVar22" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) (expression_statement "bVar5 = (!bVar26 && !bVar5) == bVar26;" (assignment_expression "bVar5 = (!bVar26 && !bVar5) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar5) == bVar26" (parenthesized_expression "(!bVar26 && !bVar5)" ( (binary_expression "!bVar26 && !bVar5" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar5" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar5) goto LAB_000aeb18;" if (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) )) (goto_statement "goto LAB_000aeb18;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }" else (compound_statement "{\n          iVar13 = 7;\n          pbVar18 = (byte *)".ctors.";\n          pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar5 = (!bVar24 && !bVar5) == bVar24;\n          if (bVar5) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar26 = false;\n          iVar13 = 7;\n          pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);\n          pbVar22 = (byte *)".dtors";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          bVar24 = false;\n          bVar5 = (!bVar26 && !bVar5) == bVar26;\n          if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }\n          bVar26 = false;\n          iVar13 = 0xc;\n          pbVar18 = (byte *)pOVar8->name_;\n          pbVar22 = (byte *)".fini_array";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);\n          if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;\n        }" { (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 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 "pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);" (assignment_expression "pbVar22 = *(byte **)((int)pppPVar16 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar16 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar16 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);" do (compound_statement "{\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar24 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar18 < *pbVar22;" (assignment_expression "bVar24 = *pbVar18 < *pbVar22" identifier = (binary_expression "*pbVar18 < *pbVar22" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar5 = *pbVar18 == *pbVar22;" (assignment_expression "bVar5 = *pbVar18 == *pbVar22" identifier = (binary_expression "*pbVar18 == *pbVar22" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) (expression_statement "bVar5 = (!bVar24 && !bVar5) == bVar24;" (assignment_expression "bVar5 = (!bVar24 && !bVar5) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar5) == bVar24" (parenthesized_expression "(!bVar24 && !bVar5)" ( (binary_expression "!bVar24 && !bVar5" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar5" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar5) goto LAB_000aeab0;" if (parenthesized_expression "(bVar5)" ( identifier )) (goto_statement "goto LAB_000aeab0;" goto statement_identifier ;)) (labeled_statement "LAB_000aeb18:\n          bVar26 = false;" statement_identifier : (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;)) (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 7" identifier = number_literal) ;) (expression_statement "pbVar18 = *(byte **)((int)pppPVar16 + 0x6c);" (assignment_expression "pbVar18 = *(byte **)((int)pppPVar16 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar16 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar16 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) 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 "))) ;) (do_statement "do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);" do (compound_statement "{\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar18 < *pbVar22;" (assignment_expression "bVar26 = *pbVar18 < *pbVar22" identifier = (binary_expression "*pbVar18 < *pbVar22" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar5 = *pbVar18 == *pbVar22;" (assignment_expression "bVar5 = *pbVar18 == *pbVar22" identifier = (binary_expression "*pbVar18 == *pbVar22" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar5 = (!bVar26 && !bVar5) == bVar26;" (assignment_expression "bVar5 = (!bVar26 && !bVar5) == bVar26" identifier = (binary_expression "(!bVar26 && !bVar5) == bVar26" (parenthesized_expression "(!bVar26 && !bVar5)" ( (binary_expression "!bVar26 && !bVar5" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar5" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar5) {\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }" if (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) )) (compound_statement "{\n            iVar13 = 7;\n            pbVar18 = (byte *)".dtors.";\n            pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);\n            do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);\n            bVar5 = (!bVar24 && !bVar5) == bVar24;\n            if (!bVar5) goto LAB_000ae820;\n          }" { (expression_statement "iVar13 = 7;" (assignment_expression "iVar13 = 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 "pbVar22 = *(byte **)((int)pppPVar16 + 0x6c);" (assignment_expression "pbVar22 = *(byte **)((int)pppPVar16 + 0x6c)" identifier = (pointer_expression "*(byte **)((int)pppPVar16 + 0x6c)" * (cast_expression "(byte **)((int)pppPVar16 + 0x6c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            } while (bVar5);" do (compound_statement "{\n              if (iVar13 == 0) break;\n              iVar13 = iVar13 + -1;\n              bVar24 = *pbVar18 < *pbVar22;\n              bVar5 = *pbVar18 == *pbVar22;\n              pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n            }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar18 < *pbVar22;" (assignment_expression "bVar24 = *pbVar18 < *pbVar22" identifier = (binary_expression "*pbVar18 < *pbVar22" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar5 = *pbVar18 == *pbVar22;" (assignment_expression "bVar5 = *pbVar18 == *pbVar22" identifier = (binary_expression "*pbVar18 == *pbVar22" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) (expression_statement "bVar5 = (!bVar24 && !bVar5) == bVar24;" (assignment_expression "bVar5 = (!bVar24 && !bVar5) == bVar24" identifier = (binary_expression "(!bVar24 && !bVar5) == bVar24" (parenthesized_expression "(!bVar24 && !bVar5)" ( (binary_expression "!bVar24 && !bVar5" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar5" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar5) goto LAB_000ae820;" if (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) )) (goto_statement "goto LAB_000ae820;" goto statement_identifier ;)) })) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "iVar13 = 0xc;" (assignment_expression "iVar13 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)pOVar8->name_;" (assignment_expression "pbVar18 = (byte *)pOVar8->name_" identifier = (cast_expression "(byte *)pOVar8->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar8->name_" identifier -> field_identifier))) ;) (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 "))) ;) (do_statement "do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          } while (bVar5);" do (compound_statement "{\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            bVar26 = *pbVar18 < *pbVar22;\n            bVar5 = *pbVar18 == *pbVar22;\n            pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;\n            pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;\n          }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "bVar26 = *pbVar18 < *pbVar22;" (assignment_expression "bVar26 = *pbVar18 < *pbVar22" identifier = (binary_expression "*pbVar18 < *pbVar22" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar5 = *pbVar18 == *pbVar22;" (assignment_expression "bVar5 = *pbVar18 == *pbVar22" identifier = (binary_expression "*pbVar18 == *pbVar22" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) (if_statement "if ((!bVar26 && !bVar5) != bVar26) goto LAB_000ae820;" if (parenthesized_expression "((!bVar26 && !bVar5) != bVar26)" ( (binary_expression "(!bVar26 && !bVar5) != bVar26" (parenthesized_expression "(!bVar26 && !bVar5)" ( (binary_expression "!bVar26 && !bVar5" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar5" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000ae820;" goto statement_identifier ;)) }))) (expression_statement "*(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + 0x28) = *(undefined4 *)((int)pppPVar16 + 100)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x28)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x28)" ( (binary_expression "(int)pppPVar16 + 0x28" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 100)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 100)" ( (binary_expression "(int)pppPVar16 + 100" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 0x68);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + 0x2c) = *(undefined4 *)((int)pppPVar16 + 0x68)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x2c)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x2c)" ( (binary_expression "(int)pppPVar16 + 0x2c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x68)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x68)" ( (binary_expression "(int)pppPVar16 + 0x68" (cast_expression "(int)pppPVar16" ( (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)pppPVar16 + 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)pppPVar16 + 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)pppPVar16 + 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)pppPVar16 + 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)pppPVar16 + 0x24)" ( (binary_expression "(int)pppPVar16 + 0x24" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&ctors_sections_in_init_array" & identifier)) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0xc) = 1;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0xc) = 1" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24);" (assignment_expression "*(undefined1 **)((int)pppPVar16 + -0x14) = (undefined1 *)((int)pppPVar16 + 0x24)" (pointer_expression "*(undefined1 **)((int)pppPVar16 + -0x14)" * (cast_expression "(undefined1 **)((int)pppPVar16 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x14)" ( (binary_expression "(int)pppPVar16 + -0x14" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)pppPVar16 + 0x24)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x24)" ( (binary_expression "(int)pppPVar16 + 0x24" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 0x28);" (assignment_expression "*(undefined1 **)((int)pppPVar16 + -0x18) = (undefined1 *)((int)pppPVar16 + 0x28)" (pointer_expression "*(undefined1 **)((int)pppPVar16 + -0x18)" * (cast_expression "(undefined1 **)((int)pppPVar16 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x18)" ( (binary_expression "(int)pppPVar16 + -0x18" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)pppPVar16 + 0x28)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x28)" ( (binary_expression "(int)pppPVar16 + 0x28" (cast_expression "(int)pppPVar16" ( (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)pppPVar16 + -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)pppPVar16 + -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)pppPVar16 + -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)pppPVar16 + -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)pppPVar16 + -0x1c)" ( (binary_expression "(int)pppPVar16 + -0x1c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&ctors_sections_in_init_array" & identifier)) ;) (expression_statement "*(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10);" (assignment_expression "*(undefined1 **)((int)pppPVar16 + -0x20) = (undefined1 *)((int)pppPVar16 + 0x10)" (pointer_expression "*(undefined1 **)((int)pppPVar16 + -0x20)" * (cast_expression "(undefined1 **)((int)pppPVar16 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x20)" ( (binary_expression "(int)pppPVar16 + -0x20" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(undefined1 *)((int)pppPVar16 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x10)" ( (binary_expression "(int)pppPVar16 + 0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x24) = 0xaeaff" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x24)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x24)" ( (binary_expression "(int)pppPVar16 + -0x24" (cast_expression "(int)pppPVar16" ( (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 "pGVar9 = (General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);" (assignment_expression "pGVar9 = (General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac)" identifier = (binary_expression "(General_options *)\n                 (uint)*(byte *)(*(int *)(*(int *)((int)pppPVar16 + 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)pppPVar16 + 0x60) + 4) + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac)" ( (binary_expression "*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac" (pointer_expression "*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4)" * (cast_expression "(int *)(*(int *)((int)pppPVar16 + 0x60) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppPVar16 + 0x60) + 4)" ( (binary_expression "*(int *)((int)pppPVar16 + 0x60) + 4" (pointer_expression "*(int *)((int)pppPVar16 + 0x60)" * (cast_expression "(int *)((int)pppPVar16 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x60)" ( (binary_expression "(int)pppPVar16 + 0x60" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000ae822;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_000ae820:\n  pGVar9 = (General_options *)0x0;" statement_identifier : (expression_statement "pGVar9 = (General_options *)0x0;" (assignment_expression "pGVar9 = (General_options *)0x0" identifier = (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_000ae822:\n  uVar21 = (uint)pOVar8->flags_;" statement_identifier : (expression_statement "uVar21 = (uint)pOVar8->flags_;" (assignment_expression "uVar21 = (uint)pOVar8->flags_" identifier = (cast_expression "(uint)pOVar8->flags_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar8->flags_" identifier -> field_identifier))) ;)) (expression_statement "*(General_options **)((int)pppPVar16 + -4) = pGVar9;" (assignment_expression "*(General_options **)((int)pppPVar16 + -4) = pGVar9" (pointer_expression "*(General_options **)((int)pppPVar16 + -4)" * (cast_expression "(General_options **)((int)pppPVar16 + -4)" ( (type_descriptor "General_options **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -4)" ( (binary_expression "(int)pppPVar16 + -4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -8) = *(undefined4 *)((int)pppPVar16 + 0x78);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -8) = *(undefined4 *)((int)pppPVar16 + 0x78)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -8)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x78)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x78)" ( (binary_expression "(int)pppPVar16 + 0x78" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x70);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0xc) = *(undefined4 *)((int)pppPVar16 + 0x70)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0xc)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x70)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x70)" ( (binary_expression "(int)pppPVar16 + 0x70" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x10) = *(undefined4 *)((int)pppPVar16 + 0x6c);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x10) = *(undefined4 *)((int)pppPVar16 + 0x6c)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x6c)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x6c)" ( (binary_expression "(int)pppPVar16 + 0x6c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x68);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x14) = *(undefined4 *)((int)pppPVar16 + 0x68)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x14)" ( (binary_expression "(int)pppPVar16 + -0x14" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x68)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x68)" ( (binary_expression "(int)pppPVar16 + 0x68" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 100);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x18) = *(undefined4 *)((int)pppPVar16 + 100)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x18)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x18)" ( (binary_expression "(int)pppPVar16 + -0x18" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 100)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 100)" ( (binary_expression "(int)pppPVar16 + 100" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x1c) = *(undefined4 *)((int)pppPVar16 + 0x60);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x1c) = *(undefined4 *)((int)pppPVar16 + 0x60)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x1c)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x1c)" ( (binary_expression "(int)pppPVar16 + -0x1c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x60)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x60)" ( (binary_expression "(int)pppPVar16 + 0x60" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(Output_section **)((int)pppPVar16 + -0x20) = pOVar8;" (assignment_expression "*(Output_section **)((int)pppPVar16 + -0x20) = pOVar8" (pointer_expression "*(Output_section **)((int)pppPVar16 + -0x20)" * (cast_expression "(Output_section **)((int)pppPVar16 + -0x20)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x20)" ( (binary_expression "(int)pppPVar16 + -0x20" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x24) = 0xae844;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x24) = 0xae844" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x24)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x24)" ( (binary_expression "(int)pppPVar16 + -0x24" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "oVar29 = Output_section::add_input_section<32,_false>\n                     (*(Output_section **)((int)pppPVar16 + -0x20),\n                      *(Layout **)((int)pppPVar16 + -0x1c),\n                      *(Sized_relobj_file<32,_false> **)((int)pppPVar16 + -0x18),\n                      *(uint *)((int)pppPVar16 + -0x14),*(char **)((int)pppPVar16 + -0x10),\n                      *(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4));" (comma_expression "oVar29 = Output_section::add_input_section<32,_false>\n                     (*(Output_section **)((int)pppPVar16 + -0x20),\n                      *(Layout **)((int)pppPVar16 + -0x1c),\n                      *(Sized_relobj_file<32,_false> **)((int)pppPVar16 + -0x18),\n                      *(uint *)((int)pppPVar16 + -0x14),*(char **)((int)pppPVar16 + -0x10),\n                      *(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4))" (binary_expression "oVar29 = Output_section::add_input_section<32" (assignment_expression "oVar29 = Output_section" identifier = identifier) (ERROR "::add_input_section" : : identifier) < number_literal) , (binary_expression "_false>\n                     (*(Output_section **)((int)pppPVar16 + -0x20),\n                      *(Layout **)((int)pppPVar16 + -0x1c),\n                      *(Sized_relobj_file<32,_false> **)((int)pppPVar16 + -0x18),\n                      *(uint *)((int)pppPVar16 + -0x14),*(char **)((int)pppPVar16 + -0x10),\n                      *(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4))" identifier > (parenthesized_expression "(*(Output_section **)((int)pppPVar16 + -0x20),\n                      *(Layout **)((int)pppPVar16 + -0x1c),\n                      *(Sized_relobj_file<32,_false> **)((int)pppPVar16 + -0x18),\n                      *(uint *)((int)pppPVar16 + -0x14),*(char **)((int)pppPVar16 + -0x10),\n                      *(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4))" ( (comma_expression "*(Output_section **)((int)pppPVar16 + -0x20),\n                      *(Layout **)((int)pppPVar16 + -0x1c),\n                      *(Sized_relobj_file<32,_false> **)((int)pppPVar16 + -0x18),\n                      *(uint *)((int)pppPVar16 + -0x14),*(char **)((int)pppPVar16 + -0x10),\n                      *(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4)" (pointer_expression "*(Output_section **)((int)pppPVar16 + -0x20)" * (cast_expression "(Output_section **)((int)pppPVar16 + -0x20)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x20)" ( (binary_expression "(int)pppPVar16 + -0x20" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(Layout **)((int)pppPVar16 + -0x1c),\n                      *(Sized_relobj_file<32,_false> **)((int)pppPVar16 + -0x18),\n                      *(uint *)((int)pppPVar16 + -0x14),*(char **)((int)pppPVar16 + -0x10),\n                      *(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4)" (pointer_expression "*(Layout **)((int)pppPVar16 + -0x1c)" * (cast_expression "(Layout **)((int)pppPVar16 + -0x1c)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x1c)" ( (binary_expression "(int)pppPVar16 + -0x1c" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(Sized_relobj_file<32,_false> **)((int)pppPVar16 + -0x18),\n                      *(uint *)((int)pppPVar16 + -0x14),*(char **)((int)pppPVar16 + -0x10),\n                      *(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4)" (pointer_expression "*(Sized_relobj_file<32,_false> **)((int)pppPVar16 + -0x18)" * (call_expression "(Sized_relobj_file<32,_false> **)((int)pppPVar16 + -0x18)" (parenthesized_expression "(Sized_relobj_file<32,_false> **)" ( (comma_expression "Sized_relobj_file<32,_false> **" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)pppPVar16 + -0x18)" ( (binary_expression "(int)pppPVar16 + -0x18" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(uint *)((int)pppPVar16 + -0x14),*(char **)((int)pppPVar16 + -0x10),\n                      *(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4)" (pointer_expression "*(uint *)((int)pppPVar16 + -0x14)" * (cast_expression "(uint *)((int)pppPVar16 + -0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x14)" ( (binary_expression "(int)pppPVar16 + -0x14" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(char **)((int)pppPVar16 + -0x10),\n                      *(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4)" (pointer_expression "*(char **)((int)pppPVar16 + -0x10)" * (cast_expression "(char **)((int)pppPVar16 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(Shdr<32,_false> **)((int)pppPVar16 + -0xc),*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4)" (pointer_expression "*(Shdr<32,_false> **)((int)pppPVar16 + -0xc)" * (call_expression "(Shdr<32,_false> **)((int)pppPVar16 + -0xc)" (parenthesized_expression "(Shdr<32,_false> **)" ( (comma_expression "Shdr<32,_false> **" (binary_expression "Shdr<32" identifier < number_literal) , (binary_expression "_false> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) )) (argument_list "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (comma_expression "*(uint *)((int)pppPVar16 + -8),\n                      *(bool *)((int)pppPVar16 + -4)" (pointer_expression "*(uint *)((int)pppPVar16 + -8)" * (cast_expression "(uint *)((int)pppPVar16 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar16 + -4)" * (cast_expression "(bool *)((int)pppPVar16 + -4)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -4)" ( (binary_expression "(int)pppPVar16 + -4" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))))))))) )))) ;) (expression_statement "**(off_t **)((int)pppPVar16 + 0x80) = oVar29;" (assignment_expression "**(off_t **)((int)pppPVar16 + 0x80) = oVar29" (pointer_expression "**(off_t **)((int)pppPVar16 + 0x80)" * (pointer_expression "*(off_t **)((int)pppPVar16 + 0x80)" * (cast_expression "(off_t **)((int)pppPVar16 + 0x80)" ( (type_descriptor "off_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + 0x80)" ( (binary_expression "(int)pppPVar16 + 0x80" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) = identifier) ;) (if_statement "if (((uVar21 & 2) != 0) && (((uVar21 ^ (uint)pOVar8->flags_) & 5) != 0)) {\n    *(undefined4 *)((int)pppPVar16 + -8) = 0;\n    *(Output_section **)((int)pppPVar16 + -0xc) = pOVar8;\n    *(undefined4 *)((int)pppPVar16 + -0x10) = *(undefined4 *)((int)pppPVar16 + 0x60);\n    *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae872;\n    OVar10 = default_section_order\n                       (*(Layout **)((int)pppPVar16 + -0x10),\n                        *(Output_section **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8));\n    pOVar8->order_ = OVar10;\n  }" if (parenthesized_expression "(((uVar21 & 2) != 0) && (((uVar21 ^ (uint)pOVar8->flags_) & 5) != 0))" ( (binary_expression "((uVar21 & 2) != 0) && (((uVar21 ^ (uint)pOVar8->flags_) & 5) != 0)" (parenthesized_expression "((uVar21 & 2) != 0)" ( (binary_expression "(uVar21 & 2) != 0" (parenthesized_expression "(uVar21 & 2)" ( (binary_expression "uVar21 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((uVar21 ^ (uint)pOVar8->flags_) & 5) != 0)" ( (binary_expression "((uVar21 ^ (uint)pOVar8->flags_) & 5) != 0" (parenthesized_expression "((uVar21 ^ (uint)pOVar8->flags_) & 5)" ( (binary_expression "(uVar21 ^ (uint)pOVar8->flags_) & 5" (parenthesized_expression "(uVar21 ^ (uint)pOVar8->flags_)" ( (binary_expression "uVar21 ^ (uint)pOVar8->flags_" identifier ^ (cast_expression "(uint)pOVar8->flags_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar8->flags_" identifier -> field_identifier))) )) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    *(undefined4 *)((int)pppPVar16 + -8) = 0;\n    *(Output_section **)((int)pppPVar16 + -0xc) = pOVar8;\n    *(undefined4 *)((int)pppPVar16 + -0x10) = *(undefined4 *)((int)pppPVar16 + 0x60);\n    *(undefined4 *)((int)pppPVar16 + -0x14) = 0xae872;\n    OVar10 = default_section_order\n                       (*(Layout **)((int)pppPVar16 + -0x10),\n                        *(Output_section **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8));\n    pOVar8->order_ = OVar10;\n  }" { (expression_statement "*(undefined4 *)((int)pppPVar16 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -8) = 0" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -8)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(Output_section **)((int)pppPVar16 + -0xc) = pOVar8;" (assignment_expression "*(Output_section **)((int)pppPVar16 + -0xc) = pOVar8" (pointer_expression "*(Output_section **)((int)pppPVar16 + -0xc)" * (cast_expression "(Output_section **)((int)pppPVar16 + -0xc)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x10) = *(undefined4 *)((int)pppPVar16 + 0x60);" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x10) = *(undefined4 *)((int)pppPVar16 + 0x60)" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x10)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppPVar16 + 0x60)" * (cast_expression "(undefined4 *)((int)pppPVar16 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x60)" ( (binary_expression "(int)pppPVar16 + 0x60" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppPVar16 + -0x14) = 0xae872;" (assignment_expression "*(undefined4 *)((int)pppPVar16 + -0x14) = 0xae872" (pointer_expression "*(undefined4 *)((int)pppPVar16 + -0x14)" * (cast_expression "(undefined4 *)((int)pppPVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -0x14)" ( (binary_expression "(int)pppPVar16 + -0x14" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "OVar10 = default_section_order\n                       (*(Layout **)((int)pppPVar16 + -0x10),\n                        *(Output_section **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8));" (assignment_expression "OVar10 = default_section_order\n                       (*(Layout **)((int)pppPVar16 + -0x10),\n                        *(Output_section **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8))" identifier = (call_expression "default_section_order\n                       (*(Layout **)((int)pppPVar16 + -0x10),\n                        *(Output_section **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8))" identifier (argument_list "(*(Layout **)((int)pppPVar16 + -0x10),\n                        *(Output_section **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8))" ( (pointer_expression "*(Layout **)((int)pppPVar16 + -0x10)" * (cast_expression "(Layout **)((int)pppPVar16 + -0x10)" ( (type_descriptor "Layout **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0x10)" ( (binary_expression "(int)pppPVar16 + -0x10" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Output_section **)((int)pppPVar16 + -0xc)" * (cast_expression "(Output_section **)((int)pppPVar16 + -0xc)" ( (type_descriptor "Output_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppPVar16 + -0xc)" ( (binary_expression "(int)pppPVar16 + -0xc" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(bool *)((int)pppPVar16 + -8)" * (cast_expression "(bool *)((int)pppPVar16 + -8)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + -8)" ( (binary_expression "(int)pppPVar16 + -8" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pOVar8->order_ = OVar10;" (assignment_expression "pOVar8->order_ = OVar10" (field_expression "pOVar8->order_" identifier -> field_identifier) = identifier) ;) })) (expression_statement "*(undefined1 *)(*(int *)((int)pppPVar16 + 0x60) + 0x1c4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)((int)pppPVar16 + 0x60) + 0x1c4) = 1" (pointer_expression "*(undefined1 *)(*(int *)((int)pppPVar16 + 0x60) + 0x1c4)" * (cast_expression "(undefined1 *)(*(int *)((int)pppPVar16 + 0x60) + 0x1c4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppPVar16 + 0x60) + 0x1c4)" ( (binary_expression "*(int *)((int)pppPVar16 + 0x60) + 0x1c4" (pointer_expression "*(int *)((int)pppPVar16 + 0x60)" * (cast_expression "(int *)((int)pppPVar16 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppPVar16 + 0x60)" ( (binary_expression "(int)pppPVar16 + 0x60" (cast_expression "(int)pppPVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) = number_literal) ;) (return_statement "return pOVar8;" return identifier ;) }))
(translation_unit "int FUN_000ae570(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  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  size_t sVar7;\n  byte bVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int **ppiVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  byte *pbVar15;\n  undefined **ppuVar16;\n  uint uVar17;\n  byte *pbVar18;\n  char *pcVar19;\n  bool bVar20;\n  bool bVar21;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  byte bVar25;\n  undefined8 uVar26;\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  bVar25 = 0;\n  uStack_14 = 0xae579;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar4 = FUN_000a7190(param_1,param_2,param_4);\n  ppiVar13 = apiStack_60 + 1;\n  ppiVar12 = apiStack_60 + 1;\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  uVar17 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar17 == 0) goto LAB_000aeb68;\n  if ((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }\n  else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000ae6f0:\n  piVar10 = (int *)ppiVar13[0x18][1];\n  piVar11 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar13[1] = piVar10;\n  bVar8 = *(byte *)(piVar10 + 0x2b);\n  uVar17 = (uint)bVar8;\n  if (bVar8 != 0) {\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }\n  if (piVar11 == (int *)0x0) {\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }\n  bVar20 = false;\n  bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';\n  if (!bVar23) goto LAB_000aea50;\n  iVar9 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar18 = (byte *)ppiVar13[0x1b];\n  do {\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar23) == bVar20;\n  if (bVar20) {\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }\nLAB_000ae820:\n  uVar17 = 0;\nLAB_000ae822:\n  uVar1 = *(uint *)(iVar6 + 0x54);\n  *(uint *)((int)ppiVar13 + -4) = uVar17;\n  *(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);\n  *(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);\n  *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);\n  *(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);\n  *(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);\n  *(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);\n  *(int *)((int)ppiVar13 + -0x20) = iVar6;\n  *(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;\n  uVar26 = FUN_00125670();\n  **(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;\n  return iVar6;\n}\n\n" (function_definition "int FUN_000ae570(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  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  size_t sVar7;\n  byte bVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int **ppiVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  byte *pbVar15;\n  undefined **ppuVar16;\n  uint uVar17;\n  byte *pbVar18;\n  char *pcVar19;\n  bool bVar20;\n  bool bVar21;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  byte bVar25;\n  undefined8 uVar26;\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  bVar25 = 0;\n  uStack_14 = 0xae579;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar4 = FUN_000a7190(param_1,param_2,param_4);\n  ppiVar13 = apiStack_60 + 1;\n  ppiVar12 = apiStack_60 + 1;\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  uVar17 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar17 == 0) goto LAB_000aeb68;\n  if ((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }\n  else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000ae6f0:\n  piVar10 = (int *)ppiVar13[0x18][1];\n  piVar11 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar13[1] = piVar10;\n  bVar8 = *(byte *)(piVar10 + 0x2b);\n  uVar17 = (uint)bVar8;\n  if (bVar8 != 0) {\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }\n  if (piVar11 == (int *)0x0) {\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }\n  bVar20 = false;\n  bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';\n  if (!bVar23) goto LAB_000aea50;\n  iVar9 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar18 = (byte *)ppiVar13[0x1b];\n  do {\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar23) == bVar20;\n  if (bVar20) {\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }\nLAB_000ae820:\n  uVar17 = 0;\nLAB_000ae822:\n  uVar1 = *(uint *)(iVar6 + 0x54);\n  *(uint *)((int)ppiVar13 + -4) = uVar17;\n  *(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);\n  *(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);\n  *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);\n  *(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);\n  *(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);\n  *(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);\n  *(int *)((int)ppiVar13 + -0x20) = iVar6;\n  *(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;\n  uVar26 = FUN_00125670();\n  **(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;\n  return iVar6;\n}" primitive_type (function_declarator "FUN_000ae570(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  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  size_t sVar7;\n  byte bVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int **ppiVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  byte *pbVar15;\n  undefined **ppuVar16;\n  uint uVar17;\n  byte *pbVar18;\n  char *pcVar19;\n  bool bVar20;\n  bool bVar21;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  byte bVar25;\n  undefined8 uVar26;\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  bVar25 = 0;\n  uStack_14 = 0xae579;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar4 = FUN_000a7190(param_1,param_2,param_4);\n  ppiVar13 = apiStack_60 + 1;\n  ppiVar12 = apiStack_60 + 1;\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  uVar17 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar17 == 0) goto LAB_000aeb68;\n  if ((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }\n  else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000ae6f0:\n  piVar10 = (int *)ppiVar13[0x18][1];\n  piVar11 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar13[1] = piVar10;\n  bVar8 = *(byte *)(piVar10 + 0x2b);\n  uVar17 = (uint)bVar8;\n  if (bVar8 != 0) {\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }\n  if (piVar11 == (int *)0x0) {\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }\n  bVar20 = false;\n  bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';\n  if (!bVar23) goto LAB_000aea50;\n  iVar9 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar18 = (byte *)ppiVar13[0x1b];\n  do {\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar23) == bVar20;\n  if (bVar20) {\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }\nLAB_000ae820:\n  uVar17 = 0;\nLAB_000ae822:\n  uVar1 = *(uint *)(iVar6 + 0x54);\n  *(uint *)((int)ppiVar13 + -4) = uVar17;\n  *(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);\n  *(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);\n  *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);\n  *(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);\n  *(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);\n  *(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);\n  *(int *)((int)ppiVar13 + -0x20) = iVar6;\n  *(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;\n  uVar26 = FUN_00125670();\n  **(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;\n  return iVar6;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int **ppiVar12;" primitive_type (pointer_declarator "**ppiVar12" * (pointer_declarator "*ppiVar12" * identifier)) ;) (declaration "int **ppiVar13;" primitive_type (pointer_declarator "**ppiVar13" * (pointer_declarator "*ppiVar13" * identifier)) ;) (declaration "int **ppiVar14;" primitive_type (pointer_declarator "**ppiVar14" * (pointer_declarator "*ppiVar14" * identifier)) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "undefined **ppuVar16;" type_identifier (pointer_declarator "**ppuVar16" * (pointer_declarator "*ppuVar16" * identifier)) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "undefined1 uVar22;" type_identifier identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "undefined8 uVar26;" 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 "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xae579;" (assignment_expression "uStack_14 = 0xae579" 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 "cVar4 = FUN_000a7190(param_1,param_2,param_4);" (assignment_expression "cVar4 = FUN_000a7190(param_1,param_2,param_4)" identifier = (call_expression "FUN_000a7190(param_1,param_2,param_4)" identifier (argument_list "(param_1,param_2,param_4)" ( identifier , identifier , identifier )))) ;) (expression_statement "ppiVar13 = apiStack_60 + 1;" (assignment_expression "ppiVar13 = apiStack_60 + 1" identifier = (binary_expression "apiStack_60 + 1" identifier + number_literal)) ;) (expression_statement "ppiVar12 = apiStack_60 + 1;" (assignment_expression "ppiVar12 = apiStack_60 + 1" identifier = (binary_expression "apiStack_60 + 1" identifier + number_literal)) ;) (if_statement "if (cVar4 == '\0') {\n    return 0;\n  }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar17 = *(uint *)(DAT_0038f378 + 8);" (assignment_expression "uVar17 = *(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 (uVar17 == 0) goto LAB_000aeb68;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000aeb68;" goto statement_identifier ;)) (if_statement "if ((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }\n  else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" if (parenthesized_expression "((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0))" ( (binary_expression "(*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)" (parenthesized_expression "(*(char *)(uVar17 + 0x318d) == '\0')" ( (binary_expression "*(char *)(uVar17 + 0x318d) == '\0'" (pointer_expression "*(char *)(uVar17 + 0x318d)" * (cast_expression "(char *)(uVar17 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar17 + 0x318d)" ( (binary_expression "uVar17 + 0x318d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)" ( (comma_expression "uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0" (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) ))))) , (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" ( (binary_expression "uVar1 & 0x200" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }" { (expression_statement "piVar10 = &DAT_0038f378;" (assignment_expression "piVar10 = &DAT_0038f378" identifier = (pointer_expression "&DAT_0038f378" & identifier)) ;) (if_statement "if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }" if (parenthesized_expression "(*(char *)(uVar17 + 0x5871) != '\0')" ( (binary_expression "*(char *)(uVar17 + 0x5871) != '\0'" (pointer_expression "*(char *)(uVar17 + 0x5871)" * (cast_expression "(char *)(uVar17 + 0x5871)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar17 + 0x5871)" ( (binary_expression "uVar17 + 0x5871" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }" { (expression_statement "uVar22 = apiStack_60 + 1 < (int **)0x4;" (assignment_expression "uVar22 = 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 "uVar24 = &stack0x00000000 == (undefined1 *)0x60;" (assignment_expression "uVar24 = &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 "iVar6 = 0xe;" (assignment_expression "iVar6 = 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 "pbVar15 = (byte *)".text.unlikely";" (assignment_expression "pbVar15 = (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 "pbVar18 = (byte *)local_40[2];" (assignment_expression "pbVar18 = (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 (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);" do (compound_statement "{\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar22 = *pbVar15 < *pbVar18;" (assignment_expression "uVar22 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "uVar24 = *pbVar15 == *pbVar18;" (assignment_expression "uVar24 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar24)" ( (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "ppiVar12 = apiStack_60;" (assignment_expression "ppiVar12 = apiStack_60" identifier = identifier) ;) (if_statement "if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }" if (parenthesized_expression "((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22)" ( (binary_expression "(!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22" (parenthesized_expression "(!(bool)uVar22 && !(bool)uVar24)" ( (binary_expression "!(bool)uVar22 && !(bool)uVar24" (unary_expression "!(bool)uVar22" ! (cast_expression "(bool)uVar22" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar22" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\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 "ppiVar14 = apiStack_60;" (assignment_expression "ppiVar14 = apiStack_60" identifier = identifier) ;) (if_statement "if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;" 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_000aec2b;" goto statement_identifier ;)) (expression_statement "uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;" (assignment_expression "uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f" identifier = (binary_expression "*(uint *)(*param_4 + 8) & 0xfffff50f" (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) )))) & number_literal)) ;) (if_statement "if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 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          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }" { (expression_statement "uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;" (assignment_expression "uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f" identifier = (binary_expression "*(uint *)(*param_4 + 8) & 0xfffff58f" (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) )))) & number_literal)) ;) })) (expression_statement "uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);" (assignment_expression "uVar5 = 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 "iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);" (assignment_expression "iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0)" identifier = (call_expression "FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0)" identifier (argument_list "(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0)" ( identifier , identifier , (subscript_expression "local_40[2]" identifier [ number_literal ]) , identifier , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "ppiVar13 = apiStack_60;" (assignment_expression "ppiVar13 = apiStack_60" identifier = identifier) ;) (expression_statement "*(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;" (assignment_expression "*(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar6 + 0x92)" * (cast_expression "(byte *)(iVar6 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x92)" ( (binary_expression "iVar6 + 0x92" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar6 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar6 + 0x92)" * (cast_expression "(byte *)(iVar6 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x92)" ( (binary_expression "iVar6 + 0x92" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_000ae6f0;" goto statement_identifier ;) })) (expression_statement "piVar10 = apiStack_60[1];" (assignment_expression "piVar10 = 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        ppiVar12 = apiStack_60;\n        piVar10 = 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        ppiVar12 = apiStack_60;\n        piVar10 = 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 "ppiVar12 = apiStack_60;" (assignment_expression "ppiVar12 = apiStack_60" identifier = identifier) ;) (expression_statement "piVar10 = apiStack_60[1];" (assignment_expression "piVar10 = apiStack_60[1]" identifier = (subscript_expression "apiStack_60[1]" identifier [ number_literal ])) ;) })) })) (expression_statement "ppiVar12[1] = piVar10;" (assignment_expression "ppiVar12[1] = piVar10" (subscript_expression "ppiVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppiVar12[10] = ppiVar12[0x19];" (assignment_expression "ppiVar12[10] = ppiVar12[0x19]" (subscript_expression "ppiVar12[10]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x19]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[0xb] = ppiVar12[0x1a];" (assignment_expression "ppiVar12[0xb] = ppiVar12[0x1a]" (subscript_expression "ppiVar12[0xb]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x1a]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-2] = (int *)local_34;" (assignment_expression "ppiVar12[-2] = (int *)local_34" (subscript_expression "ppiVar12[-2]" identifier [ number_literal ]) = (cast_expression "(int *)local_34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar12[-3] = ppiVar12[0x18] + 0x81;" (assignment_expression "ppiVar12[-3] = ppiVar12[0x18] + 0x81" (subscript_expression "ppiVar12[-3]" identifier [ number_literal ]) = (binary_expression "ppiVar12[0x18] + 0x81" (subscript_expression "ppiVar12[0x18]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "ppiVar12[-4] = (int *)(ppiVar12 + 7);" (assignment_expression "ppiVar12[-4] = (int *)(ppiVar12 + 7)" (subscript_expression "ppiVar12[-4]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar12 + 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar12 + 7)" ( (binary_expression "ppiVar12 + 7" identifier + number_literal) )))) ;) (expression_statement "ppiVar12[-5] = (int *)0xae625;" (assignment_expression "ppiVar12[-5] = (int *)0xae625" (subscript_expression "ppiVar12[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0xae625" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_000a9000();" (call_expression "FUN_000a9000()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar10 = ppiVar12[6];" (assignment_expression "piVar10 = ppiVar12[6]" identifier = (subscript_expression "ppiVar12[6]" identifier [ number_literal ])) ;) (expression_statement "ppiVar14 = ppiVar12 + -1;" (assignment_expression "ppiVar14 = ppiVar12 + -1" identifier = (binary_expression "ppiVar12 + -1" identifier + number_literal)) ;) (if_statement "if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }" if (parenthesized_expression "(piVar10 == ppiVar12[0x17] + 0x82)" ( (binary_expression "piVar10 == ppiVar12[0x17] + 0x82" identifier == (binary_expression "ppiVar12[0x17] + 0x82" (subscript_expression "ppiVar12[0x17]" identifier [ number_literal ]) + number_literal)) )) (compound_statement "{\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "ppiVar12[-3] = (int *)0x1;" (assignment_expression "ppiVar12[-3] = (int *)0x1" (subscript_expression "ppiVar12[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-4] = (int *)0x0;" (assignment_expression "ppiVar12[-4] = (int *)0x0" (subscript_expression "ppiVar12[-4]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-5] = (int *)0x0;" (assignment_expression "ppiVar12[-5] = (int *)0x0" (subscript_expression "ppiVar12[-5]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-6] = (int *)0x0;" (assignment_expression "ppiVar12[-6] = (int *)0x0" (subscript_expression "ppiVar12[-6]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-7] = (int *)0x1;" (assignment_expression "ppiVar12[-7] = (int *)0x1" (subscript_expression "ppiVar12[-7]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);" (assignment_expression "uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8)" identifier = (pointer_expression "*(undefined4 *)(*ppiVar12[0x1b] + 8)" * (cast_expression "(undefined4 *)(*ppiVar12[0x1b] + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppiVar12[0x1b] + 8)" ( (binary_expression "*ppiVar12[0x1b] + 8" (pointer_expression "*ppiVar12[0x1b]" * (subscript_expression "ppiVar12[0x1b]" identifier [ number_literal ])) + number_literal) ))))) ;) (expression_statement "ppiVar12[-8] = (int *)0x0;" (assignment_expression "ppiVar12[-8] = (int *)0x0" (subscript_expression "ppiVar12[-8]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-9] = (int *)uVar5;" (assignment_expression "ppiVar12[-9] = (int *)uVar5" (subscript_expression "ppiVar12[-9]" identifier [ number_literal ]) = (cast_expression "(int *)uVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar12[-10] = ppiVar12[0x1c];" (assignment_expression "ppiVar12[-10] = ppiVar12[0x1c]" (subscript_expression "ppiVar12[-10]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x1c]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-0xb] = ppiVar12[0x1a];" (assignment_expression "ppiVar12[-0xb] = ppiVar12[0x1a]" (subscript_expression "ppiVar12[-0xb]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x1a]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-0xc] = ppiVar12[0x18];" (assignment_expression "ppiVar12[-0xc] = ppiVar12[0x18]" (subscript_expression "ppiVar12[-0xc]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x18]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-0xd] = ppiVar12[0x17];" (assignment_expression "ppiVar12[-0xd] = ppiVar12[0x17]" (subscript_expression "ppiVar12[-0xd]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x17]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-0xe] = (int *)0xae9ae;" (assignment_expression "ppiVar12[-0xe] = (int *)0xae9ae" (subscript_expression "ppiVar12[-0xe]" identifier [ number_literal ]) = (cast_expression "(int *)0xae9ae" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = FUN_0009fff0();" (assignment_expression "iVar6 = FUN_0009fff0()" identifier = (call_expression "FUN_0009fff0()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppiVar13 = ppiVar12 + -1;" (assignment_expression "ppiVar13 = ppiVar12 + -1" identifier = (binary_expression "ppiVar12 + -1" identifier + number_literal)) ;) (expression_statement "apiStack_60[1] = *ppiVar12;" (assignment_expression "apiStack_60[1] = *ppiVar12" (subscript_expression "apiStack_60[1]" identifier [ number_literal ]) = (pointer_expression "*ppiVar12" * identifier)) ;) (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }" else (compound_statement "{\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }" { (expression_statement "iVar6 = *(int *)(**ppiVar12 + 8);" (assignment_expression "iVar6 = *(int *)(**ppiVar12 + 8)" identifier = (pointer_expression "*(int *)(**ppiVar12 + 8)" * (cast_expression "(int *)(**ppiVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**ppiVar12 + 8)" ( (binary_expression "**ppiVar12 + 8" (pointer_expression "**ppiVar12" * (pointer_expression "*ppiVar12" * identifier)) + number_literal) ))))) ;) (if_statement "if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }" { (labeled_statement "LAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;" statement_identifier : (expression_statement "*(code **)((int)ppiVar14 + -4) = FUN_000aec30;" (assignment_expression "*(code **)((int)ppiVar14 + -4) = FUN_000aec30" (pointer_expression "*(code **)((int)ppiVar14 + -4)" * (cast_expression "(code **)((int)ppiVar14 + -4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar14 + -4)" ( (binary_expression "(int)ppiVar14 + -4" (cast_expression "(int)ppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "FUN_00096010();" (call_expression "FUN_00096010()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;" (assignment_expression "uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f" identifier = (binary_expression "*(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f" (pointer_expression "*(uint *)(*ppiVar12[0x1b] + 8)" * (cast_expression "(uint *)(*ppiVar12[0x1b] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppiVar12[0x1b] + 8)" ( (binary_expression "*ppiVar12[0x1b] + 8" (pointer_expression "*ppiVar12[0x1b]" * (subscript_expression "ppiVar12[0x1b]" identifier [ number_literal ])) + number_literal) )))) & number_literal)) ;) (if_statement "if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }" if (parenthesized_expression "(*(char *)(iVar6 + 0x318d) != '\0')" ( (binary_expression "*(char *)(iVar6 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar6 + 0x318d)" * (cast_expression "(char *)(iVar6 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x318d)" ( (binary_expression "iVar6 + 0x318d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }" { (expression_statement "uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;" (assignment_expression "uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f" identifier = (binary_expression "*(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f" (pointer_expression "*(uint *)(*ppiVar12[0x1b] + 8)" * (cast_expression "(uint *)(*ppiVar12[0x1b] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppiVar12[0x1b] + 8)" ( (binary_expression "*ppiVar12[0x1b] + 8" (pointer_expression "*ppiVar12[0x1b]" * (subscript_expression "ppiVar12[0x1b]" identifier [ number_literal ])) + number_literal) )))) & number_literal)) ;) })) (expression_statement "puVar2 = (undefined4 *)piVar10[6];" (assignment_expression "puVar2 = (undefined4 *)piVar10[6]" identifier = (cast_expression "(undefined4 *)piVar10[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[6]" identifier [ number_literal ]))) ;) (expression_statement "*ppiVar12 = *ppiVar12;" (assignment_expression "*ppiVar12 = *ppiVar12" (pointer_expression "*ppiVar12" * identifier) = (pointer_expression "*ppiVar12" * identifier)) ;) (expression_statement "ppiVar12[-2] = (int *)local_34;" (assignment_expression "ppiVar12[-2] = (int *)local_34" (subscript_expression "ppiVar12[-2]" identifier [ number_literal ]) = (cast_expression "(int *)local_34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar12[-3] = (int *)0x1;" (assignment_expression "ppiVar12[-3] = (int *)0x1" (subscript_expression "ppiVar12[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-4] = (int *)*puVar2;" (assignment_expression "ppiVar12[-4] = (int *)*puVar2" (subscript_expression "ppiVar12[-4]" identifier [ number_literal ]) = (cast_expression "(int *)*puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "ppiVar12[-5] = ppiVar12[0x17] + 2;" (assignment_expression "ppiVar12[-5] = ppiVar12[0x17] + 2" (subscript_expression "ppiVar12[-5]" identifier [ number_literal ]) = (binary_expression "ppiVar12[0x17] + 2" (subscript_expression "ppiVar12[0x17]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "ppiVar12[-6] = (int *)0xae68b;" (assignment_expression "ppiVar12[-6] = (int *)0xae68b" (subscript_expression "ppiVar12[-6]" identifier [ number_literal ]) = (cast_expression "(int *)0xae68b" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = FUN_00174930();" (assignment_expression "uVar5 = FUN_00174930()" identifier = (call_expression "FUN_00174930()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppiVar12[-2] = (int *)0x0;" (assignment_expression "ppiVar12[-2] = (int *)0x0" (subscript_expression "ppiVar12[-2]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-3] = (int *)0x0;" (assignment_expression "ppiVar12[-3] = (int *)0x0" (subscript_expression "ppiVar12[-3]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-4] = (int *)0x0;" (assignment_expression "ppiVar12[-4] = (int *)0x0" (subscript_expression "ppiVar12[-4]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar12[-5] = (int *)uVar17;" (assignment_expression "ppiVar12[-5] = (int *)uVar17" (subscript_expression "ppiVar12[-5]" identifier [ number_literal ]) = (cast_expression "(int *)uVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar12[-6] = ppiVar12[0x1c];" (assignment_expression "ppiVar12[-6] = ppiVar12[0x1c]" (subscript_expression "ppiVar12[-6]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x1c]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-7] = ppiVar12[9];" (assignment_expression "ppiVar12[-7] = ppiVar12[9]" (subscript_expression "ppiVar12[-7]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[9]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-8] = (int *)uVar5;" (assignment_expression "ppiVar12[-8] = (int *)uVar5" (subscript_expression "ppiVar12[-8]" identifier [ number_literal ]) = (cast_expression "(int *)uVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar12[-9] = ppiVar12[0x17];" (assignment_expression "ppiVar12[-9] = ppiVar12[0x17]" (subscript_expression "ppiVar12[-9]" identifier [ number_literal ]) = (subscript_expression "ppiVar12[0x17]" identifier [ number_literal ])) ;) (expression_statement "ppiVar12[-10] = (int *)0xae6a9;" (assignment_expression "ppiVar12[-10] = (int *)0xae6a9" (subscript_expression "ppiVar12[-10]" identifier [ number_literal ]) = (cast_expression "(int *)0xae6a9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = FUN_0009fd60();" (assignment_expression "iVar6 = FUN_0009fd60()" identifier = (call_expression "FUN_0009fd60()" identifier (argument_list "()" ( )))) ;) (expression_statement "apiStack_60[1] = *ppiVar12;" (assignment_expression "apiStack_60[1] = *ppiVar12" (subscript_expression "apiStack_60[1]" identifier [ number_literal ]) = (pointer_expression "*ppiVar12" * identifier)) ;) (expression_statement "ppiVar13 = ppiVar12 + -1;" (assignment_expression "ppiVar13 = ppiVar12 + -1" identifier = (binary_expression "ppiVar12 + -1" identifier + number_literal)) ;) (if_statement "if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }" if (parenthesized_expression "(-1 < (char)*(byte *)(iVar6 + 0x92))" ( (binary_expression "-1 < (char)*(byte *)(iVar6 + 0x92)" number_literal < (cast_expression "(char)*(byte *)(iVar6 + 0x92)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(iVar6 + 0x92)" * (cast_expression "(byte *)(iVar6 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x92)" ( (binary_expression "iVar6 + 0x92" identifier + number_literal) )))))) )) (compound_statement "{\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }" { (expression_statement "*(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;" (assignment_expression "*(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar6 + 0x92)" * (cast_expression "(byte *)(iVar6 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x92)" ( (binary_expression "iVar6 + 0x92" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar6 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar6 + 0x92)" * (cast_expression "(byte *)(iVar6 + 0x92)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x92)" ( (binary_expression "iVar6 + 0x92" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "iVar9 = piVar10[6];" (assignment_expression "iVar9 = piVar10[6]" identifier = (subscript_expression "piVar10[6]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar9 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar9 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 8)" * (cast_expression "(undefined4 *)(iVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);" (assignment_expression "*(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4)" (pointer_expression "*(undefined4 *)(iVar6 + 0x9c)" * (cast_expression "(undefined4 *)(iVar6 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x9c)" ( (binary_expression "iVar6 + 0x9c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar9 + 0xc);" (assignment_expression "uVar3 = *(undefined4 *)(iVar9 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0xc)" * (cast_expression "(undefined4 *)(iVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0xa0) = uVar5;" (assignment_expression "*(undefined4 *)(iVar6 + 0xa0) = uVar5" (pointer_expression "*(undefined4 *)(iVar6 + 0xa0)" * (cast_expression "(undefined4 *)(iVar6 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xa0)" ( (binary_expression "iVar6 + 0xa0" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar9 + 0x10);" (assignment_expression "uVar5 = *(undefined4 *)(iVar9 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x10)" * (cast_expression "(undefined4 *)(iVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0xa4) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0xa4) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0xa4)" * (cast_expression "(undefined4 *)(iVar6 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xa4)" ( (binary_expression "iVar6 + 0xa4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar6 + 0xa8) = uVar5;" (assignment_expression "*(undefined4 *)(iVar6 + 0xa8) = uVar5" (pointer_expression "*(undefined4 *)(iVar6 + 0xa8)" * (cast_expression "(undefined4 *)(iVar6 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xa8)" ( (binary_expression "iVar6 + 0xa8" identifier + number_literal) )))) = identifier) ;) (expression_statement "ppiVar13 = ppiVar12 + -1;" (assignment_expression "ppiVar13 = ppiVar12 + -1" identifier = (binary_expression "ppiVar12 + -1" identifier + number_literal)) ;) })) }))) }) (else_clause "else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" else (compound_statement "{\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" { (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 "uVar5 = FUN_00174930(param_1 + 8,param_4,1);" (assignment_expression "uVar5 = 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 "iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);" (assignment_expression "iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0)" identifier = (call_expression "FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0)" identifier (argument_list "(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0)" ( identifier , identifier , identifier , (binary_expression "uVar1 & 0xfffff7ff" identifier & number_literal) , number_literal , number_literal , number_literal )))) ;) (expression_statement "ppiVar13 = apiStack_60 + 1;" (assignment_expression "ppiVar13 = 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_000ae6f0:\n  piVar10 = (int *)ppiVar13[0x18][1];" statement_identifier : (expression_statement "piVar10 = (int *)ppiVar13[0x18][1];" (assignment_expression "piVar10 = (int *)ppiVar13[0x18][1]" identifier = (cast_expression "(int *)ppiVar13[0x18][1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x18][1]" (subscript_expression "ppiVar13[0x18]" identifier [ number_literal ]) [ number_literal ]))) ;)) (expression_statement "piVar11 = *(int **)(*apiStack_60[1] + 8);" (assignment_expression "piVar11 = *(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 "ppiVar13[1] = piVar10;" (assignment_expression "ppiVar13[1] = piVar10" (subscript_expression "ppiVar13[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar8 = *(byte *)(piVar10 + 0x2b);" (assignment_expression "bVar8 = *(byte *)(piVar10 + 0x2b)" identifier = (pointer_expression "*(byte *)(piVar10 + 0x2b)" * (cast_expression "(byte *)(piVar10 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar10 + 0x2b)" ( (binary_expression "piVar10 + 0x2b" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = (uint)bVar8;" (assignment_expression "uVar17 = (uint)bVar8" identifier = (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar8 != 0) {\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }" { (if_statement "if (piVar11 == (int *)0x0) goto LAB_000aeb68;" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000aeb68;" goto statement_identifier ;)) (goto_statement "goto LAB_000ae822;" goto statement_identifier ;) })) (if_statement "if (piVar11 == (int *)0x0) {\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }" { (labeled_statement "LAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;" statement_identifier : (expression_statement "ppiVar13[0xffffffff] = (int *)uVar17;" (assignment_expression "ppiVar13[0xffffffff] = (int *)uVar17" (subscript_expression "ppiVar13[0xffffffff]" identifier [ number_literal ]) = (cast_expression "(int *)uVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "ppiVar13[0xfffffffe] = (int *)"options";" (assignment_expression "ppiVar13[0xfffffffe] = (int *)"options"" (subscript_expression "ppiVar13[0xfffffffe]" identifier [ number_literal ]) = (cast_expression "(int *)"options"" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (string_literal ""options"" " string_content "))) ;) (expression_statement "ppiVar13[0xfffffffd] = (int *)0x5c;" (assignment_expression "ppiVar13[0xfffffffd] = (int *)0x5c" (subscript_expression "ppiVar13[0xfffffffd]" identifier [ number_literal ]) = (cast_expression "(int *)0x5c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";" (assignment_expression "ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h"" (subscript_expression "ppiVar13[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 "ppiVar13[0xfffffffb] = (int *)0xaeb7e;" (assignment_expression "ppiVar13[0xfffffffb] = (int *)0xaeb7e" (subscript_expression "ppiVar13[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)0xaeb7e" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';" (assignment_expression "bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0'" identifier = (binary_expression "*(char *)((int)piVar11 + 0x318d) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x318d)" * (cast_expression "(char *)((int)piVar11 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x318d)" ( (binary_expression "(int)piVar11 + 0x318d" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar23) goto LAB_000aea50;" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (goto_statement "goto LAB_000aea50;" goto statement_identifier ;)) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".ctors.";" (assignment_expression "pbVar15 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  } while (bVar23);" do (compound_statement "{\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar15 < *pbVar18;" (assignment_expression "bVar20 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar23 = *pbVar15 == *pbVar18;" (assignment_expression "bVar23 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar20 && !bVar23) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar23) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar23) == bVar20" (parenthesized_expression "(!bVar20 && !bVar23)" ( (binary_expression "!bVar20 && !bVar23" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) {\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }" { (labeled_statement "LAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;" statement_identifier : (expression_statement "*(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;" (assignment_expression "*(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8" (pointer_expression "*(byte *)(iVar6 + 0x91)" * (cast_expression "(byte *)(iVar6 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x91)" ( (binary_expression "iVar6 + 0x91" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar6 + 0x91) | 8" (pointer_expression "*(byte *)(iVar6 + 0x91)" * (cast_expression "(byte *)(iVar6 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x91)" ( (binary_expression "iVar6 + 0x91" identifier + number_literal) )))) | number_literal)) ;)) (expression_statement "bVar8 = *(byte *)(ppiVar13[1] + 0x2b);" (assignment_expression "bVar8 = *(byte *)(ppiVar13[1] + 0x2b)" identifier = (pointer_expression "*(byte *)(ppiVar13[1] + 0x2b)" * (cast_expression "(byte *)(ppiVar13[1] + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar13[1] + 0x2b)" ( (binary_expression "ppiVar13[1] + 0x2b" (subscript_expression "ppiVar13[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar17 = (uint)bVar8;" (assignment_expression "uVar17 = (uint)bVar8" identifier = (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }" if (parenthesized_expression "(*(char *)((int)piVar11 + 0x3ced) == '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x3ced) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x3ced)" * (cast_expression "(char *)((int)piVar11 + 0x3ced)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x3ced)" ( (binary_expression "(int)piVar11 + 0x3ced" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }" { (labeled_statement "LAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;" statement_identifier : (if_statement "if (bVar8 != 0) goto LAB_000ae822;" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ae822;" goto statement_identifier ;))) (goto_statement "goto LAB_000aea5d;" goto statement_identifier ;) })) (if_statement "if (bVar8 != 0) goto LAB_000ae822;" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000ae822;" goto statement_identifier ;)) (labeled_statement "LAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);" statement_identifier : (expression_statement "cVar4 = *(char *)((int)piVar11 + 0x318d);" (assignment_expression "cVar4 = *(char *)((int)piVar11 + 0x318d)" identifier = (pointer_expression "*(char *)((int)piVar11 + 0x318d)" * (cast_expression "(char *)((int)piVar11 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x318d)" ( (binary_expression "(int)piVar11 + 0x318d" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (if_statement "if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;" if (parenthesized_expression "(*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0')" ( (binary_expression "*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0'" (pointer_expression "*(char *)((int)ppiVar13[0x18] + 0x1cd)" * (cast_expression "(char *)((int)ppiVar13[0x18] + 0x1cd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13[0x18] + 0x1cd)" ( (binary_expression "(int)ppiVar13[0x18] + 0x1cd" (cast_expression "(int)ppiVar13[0x18]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppiVar13[0x18]" identifier [ number_literal ])) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000aea64;" goto statement_identifier ;)) (if_statement "if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }" { (expression_statement "ppiVar13[3] = piVar11;" (assignment_expression "ppiVar13[3] = piVar11" (subscript_expression "ppiVar13[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppuVar16 = &PTR_s__text_unlikely_003837a0;" (assignment_expression "ppuVar16 = &PTR_s__text_unlikely_003837a0" identifier = (pointer_expression "&PTR_s__text_unlikely_003837a0" & identifier)) ;) (expression_statement "ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;" (assignment_expression "ppiVar13[2] = (int *)&PTR_s_aranges_003837b0" (subscript_expression "ppiVar13[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 "pcVar19 = ".text.unlikely";" (assignment_expression "pcVar19 = ".text.unlikely"" identifier = (string_literal "".text.unlikely"" " string_content ")) ;) (expression_statement "sVar7 = 0xe;" (assignment_expression "sVar7 = 0xe" identifier = number_literal) ;) (while_statement "while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }" { (expression_statement "ppiVar13[0xfffffffe] = (int *)sVar7;" (assignment_expression "ppiVar13[0xfffffffe] = (int *)sVar7" (subscript_expression "ppiVar13[0xfffffffe]" identifier [ number_literal ]) = (cast_expression "(int *)sVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar13[0xfffffffd] = ppiVar13[0x1b];" (assignment_expression "ppiVar13[0xfffffffd] = ppiVar13[0x1b]" (subscript_expression "ppiVar13[0xfffffffd]" identifier [ number_literal ]) = (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ])) ;) (expression_statement "ppiVar13[0xfffffffc] = (int *)pcVar19;" (assignment_expression "ppiVar13[0xfffffffc] = (int *)pcVar19" (subscript_expression "ppiVar13[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)pcVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar13[0xfffffffb] = (int *)0xaebdd;" (assignment_expression "ppiVar13[0xfffffffb] = (int *)0xaebdd" (subscript_expression "ppiVar13[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)0xaebdd" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);" (assignment_expression "iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe])" identifier = (call_expression "strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe])" identifier (argument_list "((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe])" ( (cast_expression "(char *)ppiVar13[0xfffffffc]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0xfffffffc]" identifier [ number_literal ])) , (cast_expression "(char *)ppiVar13[0xfffffffd]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0xfffffffd]" identifier [ number_literal ])) , (cast_expression "(size_t)ppiVar13[0xfffffffe]" ( (type_descriptor "size_t" primitive_type) ) (subscript_expression "ppiVar13[0xfffffffe]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "ppuVar16 = ppuVar16 + 1;" (assignment_expression "ppuVar16 = ppuVar16 + 1" identifier = (binary_expression "ppuVar16 + 1" identifier + number_literal)) ;) (if_statement "if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;" if (parenthesized_expression "((undefined **)ppiVar13[2] == ppuVar16)" ( (binary_expression "(undefined **)ppiVar13[2] == ppuVar16" (cast_expression "(undefined **)ppiVar13[2]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "ppiVar13[2]" identifier [ number_literal ])) == identifier) )) (goto_statement "goto LAB_000aea6c;" goto statement_identifier ;)) (expression_statement "pcVar19 = *ppuVar16;" (assignment_expression "pcVar19 = *ppuVar16" identifier = (pointer_expression "*ppuVar16" * identifier)) ;) (expression_statement "ppiVar13[0xfffffffc] = (int *)pcVar19;" (assignment_expression "ppiVar13[0xfffffffc] = (int *)pcVar19" (subscript_expression "ppiVar13[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)pcVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppiVar13[0xfffffffb] = (int *)0xaebfc;" (assignment_expression "ppiVar13[0xfffffffb] = (int *)0xaebfc" (subscript_expression "ppiVar13[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)0xaebfc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar7 = strlen((char *)ppiVar13[0xfffffffc]);" (assignment_expression "sVar7 = strlen((char *)ppiVar13[0xfffffffc])" identifier = (call_expression "strlen((char *)ppiVar13[0xfffffffc])" identifier (argument_list "((char *)ppiVar13[0xfffffffc])" ( (cast_expression "(char *)ppiVar13[0xfffffffc]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0xfffffffc]" identifier [ number_literal ])) )))) ;) })) (expression_statement "piVar11 = ppiVar13[3];" (assignment_expression "piVar11 = ppiVar13[3]" identifier = (subscript_expression "ppiVar13[3]" identifier [ number_literal ])) ;) (expression_statement "*(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;" (assignment_expression "*(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8" (pointer_expression "*(byte *)(iVar6 + 0x91)" * (cast_expression "(byte *)(iVar6 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x91)" ( (binary_expression "iVar6 + 0x91" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar6 + 0x91) | 8" (pointer_expression "*(byte *)(iVar6 + 0x91)" * (cast_expression "(byte *)(iVar6 + 0x91)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x91)" ( (binary_expression "iVar6 + 0x91" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "bVar8 = *(byte *)(ppiVar13[1] + 0x2b);" (assignment_expression "bVar8 = *(byte *)(ppiVar13[1] + 0x2b)" identifier = (pointer_expression "*(byte *)(ppiVar13[1] + 0x2b)" * (cast_expression "(byte *)(ppiVar13[1] + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar13[1] + 0x2b)" ( (binary_expression "ppiVar13[1] + 0x2b" (subscript_expression "ppiVar13[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar17 = (uint)bVar8;" (assignment_expression "uVar17 = (uint)bVar8" identifier = (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_000aeb99;" goto statement_identifier ;) })) }) (else_clause "else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }" else (compound_statement "{\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".dtors.";" (assignment_expression "pbVar15 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);" do (compound_statement "{\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar21 && !bVar20) == bVar21;" (assignment_expression "bVar20 = (!bVar21 && !bVar20) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) goto LAB_000ae7d8;" if (parenthesized_expression "(bVar20)" ( identifier )) (goto_statement "goto LAB_000ae7d8;" goto statement_identifier ;)) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".init_array.";" (assignment_expression "pbVar15 = (byte *)".init_array."" identifier = (cast_expression "(byte *)".init_array."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".init_array."" " string_content "))) ;) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);" do (compound_statement "{\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar15 < *pbVar18;" (assignment_expression "bVar23 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar23 && !bVar20) == bVar23;" (assignment_expression "bVar20 = (!bVar23 && !bVar20) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar20) == bVar23" (parenthesized_expression "(!bVar23 && !bVar20)" ( (binary_expression "!bVar23 && !bVar20" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) goto LAB_000ae7d8;" if (parenthesized_expression "(bVar20)" ( identifier )) (goto_statement "goto LAB_000ae7d8;" goto statement_identifier ;)) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".fini_array.";" (assignment_expression "pbVar15 = (byte *)".fini_array."" identifier = (cast_expression "(byte *)".fini_array."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".fini_array."" " string_content "))) ;) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);" do (compound_statement "{\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;" if (parenthesized_expression "((!bVar21 && !bVar20) == bVar21)" ( (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_000ae7d8;" goto statement_identifier ;)) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';" (assignment_expression "bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0'" identifier = (binary_expression "*(char *)((int)piVar11 + 0xad5) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0xad5)" * (cast_expression "(char *)((int)piVar11 + 0xad5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0xad5)" ( (binary_expression "(int)piVar11 + 0xad5" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (compound_statement "{\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar15 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" 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 "))) ;) (do_statement "do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);" do (compound_statement "{\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar15 < *pbVar18;" (assignment_expression "bVar20 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar23 = *pbVar15 == *pbVar18;" (assignment_expression "bVar23 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar20 && !bVar23) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar23) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar23) == bVar20" (parenthesized_expression "(!bVar20 && !bVar23)" ( (binary_expression "!bVar20 && !bVar23" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }" if (parenthesized_expression "(!bVar20)" ( (unary_expression "!bVar20" ! identifier) )) (compound_statement "{\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar15 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" 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 "))) ;) (do_statement "do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);" do (compound_statement "{\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;" if (parenthesized_expression "((!bVar21 && !bVar20) != bVar21)" ( (binary_expression "(!bVar21 && !bVar20) != bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000aea50;" goto statement_identifier ;)) })) (goto_statement "goto LAB_000ae7d8;" goto statement_identifier ;) })) (labeled_statement "LAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;" statement_identifier : (if_statement "if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;" if (parenthesized_expression "(*(char *)((int)piVar11 + 0x3ced) != '\0')" ( (binary_expression "*(char *)((int)piVar11 + 0x3ced) != '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x3ced)" * (cast_expression "(char *)((int)piVar11 + 0x3ced)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x3ced)" ( (binary_expression "(int)piVar11 + 0x3ced" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000ae7fd;" goto statement_identifier ;))) (labeled_statement "LAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);" statement_identifier : (expression_statement "cVar4 = *(char *)((int)piVar11 + 0x318d);" (assignment_expression "cVar4 = *(char *)((int)piVar11 + 0x318d)" identifier = (pointer_expression "*(char *)((int)piVar11 + 0x318d)" * (cast_expression "(char *)((int)piVar11 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 0x318d)" ( (binary_expression "(int)piVar11 + 0x318d" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (labeled_statement "LAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }" statement_identifier : (if_statement "if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }" { (labeled_statement "LAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);" statement_identifier : (expression_statement "uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);" (assignment_expression "uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14)" identifier = (pointer_expression "*(uint *)(*ppiVar13[0x1c] + 0x14)" * (cast_expression "(uint *)(*ppiVar13[0x1c] + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*ppiVar13[0x1c] + 0x14)" ( (binary_expression "*ppiVar13[0x1c] + 0x14" (pointer_expression "*ppiVar13[0x1c]" * (subscript_expression "ppiVar13[0x1c]" identifier [ number_literal ])) + number_literal) ))))) ;)) (expression_statement "bVar20 = uVar17 < 4;" (assignment_expression "bVar20 = uVar17 < 4" identifier = (binary_expression "uVar17 < 4" identifier < number_literal)) ;) (expression_statement "bVar23 = uVar17 == 4;" (assignment_expression "bVar23 = uVar17 == 4" identifier = (binary_expression "uVar17 == 4" identifier == number_literal)) ;) (if_statement "if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }" if (parenthesized_expression "(4 < uVar17)" ( (binary_expression "4 < uVar17" number_literal < identifier) )) (compound_statement "{\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar15 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" 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 "))) ;) (do_statement "do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);" do (compound_statement "{\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar15 < *pbVar18;" (assignment_expression "bVar20 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar23 = *pbVar15 == *pbVar18;" (assignment_expression "bVar23 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar23)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar20 && !bVar23) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar23) == bVar20" identifier = (binary_expression "(!bVar20 && !bVar23) == bVar20" (parenthesized_expression "(!bVar20 && !bVar23)" ( (binary_expression "!bVar20 && !bVar23" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar23" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }" { (labeled_statement "LAB_000aeab0:\n          bVar23 = false;" statement_identifier : (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;)) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar15 = *(byte **)(iVar6 + 0x20);" (assignment_expression "pbVar15 = *(byte **)(iVar6 + 0x20)" identifier = (pointer_expression "*(byte **)(iVar6 + 0x20)" * (cast_expression "(byte **)(iVar6 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" 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 "))) ;) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);" do (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar15 < *pbVar18;" (assignment_expression "bVar23 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar20 = (!bVar23 && !bVar20) == bVar23;" (assignment_expression "bVar20 = (!bVar23 && !bVar20) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar20) == bVar23" (parenthesized_expression "(!bVar23 && !bVar20)" ( (binary_expression "!bVar23 && !bVar20" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar20) goto LAB_000aeb18;" if (parenthesized_expression "(!bVar20)" ( (unary_expression "!bVar20" ! identifier) )) (goto_statement "goto LAB_000aeb18;" goto statement_identifier ;)) }) (else_clause "else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }" else (compound_statement "{\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".ctors.";" (assignment_expression "pbVar15 = (byte *)".ctors."" identifier = (cast_expression "(byte *)".ctors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".ctors."" " string_content "))) ;) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);" do (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar20 = (!bVar21 && !bVar20) == bVar21;" (assignment_expression "bVar20 = (!bVar21 && !bVar20) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar20) goto LAB_000aeab0;" if (parenthesized_expression "(bVar20)" ( identifier )) (goto_statement "goto LAB_000aeab0;" goto statement_identifier ;)) (labeled_statement "LAB_000aeb18:\n          bVar23 = false;" statement_identifier : (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;)) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar15 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" 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 "))) ;) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);" do (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar15 < *pbVar18;" (assignment_expression "bVar23 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "bVar20 = (!bVar23 && !bVar20) == bVar23;" (assignment_expression "bVar20 = (!bVar23 && !bVar20) == bVar23" identifier = (binary_expression "(!bVar23 && !bVar20) == bVar23" (parenthesized_expression "(!bVar23 && !bVar20)" ( (binary_expression "!bVar23 && !bVar20" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }" if (parenthesized_expression "(!bVar20)" ( (unary_expression "!bVar20" ! identifier) )) (compound_statement "{\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar15 = (byte *)".dtors.";" (assignment_expression "pbVar15 = (byte *)".dtors."" identifier = (cast_expression "(byte *)".dtors."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".dtors."" " string_content "))) ;) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" identifier = (cast_expression "(byte *)ppiVar13[0x1b]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppiVar13[0x1b]" identifier [ number_literal ]))) ;) (do_statement "do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);" do (compound_statement "{\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (expression_statement "bVar20 = (!bVar21 && !bVar20) == bVar21;" (assignment_expression "bVar20 = (!bVar21 && !bVar20) == bVar21" identifier = (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" ( (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar20) goto LAB_000ae820;" if (parenthesized_expression "(!bVar20)" ( (unary_expression "!bVar20" ! identifier) )) (goto_statement "goto LAB_000ae820;" goto statement_identifier ;)) })) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" identifier = number_literal) ;) (expression_statement "pbVar15 = *(byte **)(iVar6 + 0x20);" (assignment_expression "pbVar15 = *(byte **)(iVar6 + 0x20)" identifier = (pointer_expression "*(byte **)(iVar6 + 0x20)" * (cast_expression "(byte **)(iVar6 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x20)" ( (binary_expression "iVar6 + 0x20" 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 "))) ;) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);" do (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar23 = *pbVar15 < *pbVar18;" (assignment_expression "bVar23 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar20)" ( identifier )) ;) (if_statement "if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;" if (parenthesized_expression "((!bVar23 && !bVar20) != bVar23)" ( (binary_expression "(!bVar23 && !bVar20) != bVar23" (parenthesized_expression "(!bVar23 && !bVar20)" ( (binary_expression "!bVar23 && !bVar20" (unary_expression "!bVar23" ! identifier) && (unary_expression "!bVar20" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000ae820;" goto statement_identifier ;)) }))) (expression_statement "ppiVar13[10] = ppiVar13[0x19];" (assignment_expression "ppiVar13[10] = ppiVar13[0x19]" (subscript_expression "ppiVar13[10]" identifier [ number_literal ]) = (subscript_expression "ppiVar13[0x19]" identifier [ number_literal ])) ;) (expression_statement "ppiVar13[0xb] = ppiVar13[0x1a];" (assignment_expression "ppiVar13[0xb] = ppiVar13[0x1a]" (subscript_expression "ppiVar13[0xb]" identifier [ number_literal ]) = (subscript_expression "ppiVar13[0x1a]" identifier [ number_literal ])) ;) (expression_statement "ppiVar13[9] = &DAT_0038f4c4;" (assignment_expression "ppiVar13[9] = &DAT_0038f4c4" (subscript_expression "ppiVar13[9]" identifier [ number_literal ]) = (pointer_expression "&DAT_0038f4c4" & identifier)) ;) (expression_statement "ppiVar13[0xfffffffd] = (int *)0x1;" (assignment_expression "ppiVar13[0xfffffffd] = (int *)0x1" (subscript_expression "ppiVar13[0xfffffffd]" identifier [ number_literal ]) = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar13[0xfffffffc] = (int *)0x0;" (assignment_expression "ppiVar13[0xfffffffc] = (int *)0x0" (subscript_expression "ppiVar13[0xfffffffc]" identifier [ number_literal ]) = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);" (assignment_expression "ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9)" (subscript_expression "ppiVar13[0xfffffffb]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar13 + 9)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar13 + 9)" ( (binary_expression "ppiVar13 + 9" identifier + number_literal) )))) ;) (expression_statement "ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);" (assignment_expression "ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10)" (subscript_expression "ppiVar13[0xfffffffa]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar13 + 10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar13 + 10)" ( (binary_expression "ppiVar13 + 10" identifier + number_literal) )))) ;) (expression_statement "ppiVar13[0xfffffff9] = &DAT_0038f4c4;" (assignment_expression "ppiVar13[0xfffffff9] = &DAT_0038f4c4" (subscript_expression "ppiVar13[0xfffffff9]" identifier [ number_literal ]) = (pointer_expression "&DAT_0038f4c4" & identifier)) ;) (expression_statement "ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);" (assignment_expression "ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4)" (subscript_expression "ppiVar13[0xfffffff8]" identifier [ number_literal ]) = (cast_expression "(int *)(ppiVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppiVar13 + 4)" ( (binary_expression "ppiVar13 + 4" identifier + number_literal) )))) ;) (expression_statement "ppiVar13[0xfffffff7] = (int *)0xaeaff;" (assignment_expression "ppiVar13[0xfffffff7] = (int *)0xaeaff" (subscript_expression "ppiVar13[0xfffffff7]" identifier [ number_literal ]) = (cast_expression "(int *)0xaeaff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_000ae400();" (call_expression "FUN_000ae400()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppiVar12 = ppiVar13 + 0x17;" (assignment_expression "ppiVar12 = ppiVar13 + 0x17" identifier = (binary_expression "ppiVar13 + 0x17" identifier + number_literal)) ;) (expression_statement "ppiVar13 = ppiVar13 + 0xffffffff;" (assignment_expression "ppiVar13 = ppiVar13 + 0xffffffff" identifier = (binary_expression "ppiVar13 + 0xffffffff" identifier + number_literal)) ;) (expression_statement "uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);" (assignment_expression "uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac)" identifier = (binary_expression "(uint)*(byte *)((*ppiVar12)[1] + 0xac)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((*ppiVar12)[1] + 0xac)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*ppiVar12)[1] + 0xac)" ( (binary_expression "(*ppiVar12)[1] + 0xac" (subscript_expression "(*ppiVar12)[1]" (parenthesized_expression "(*ppiVar12)" ( (pointer_expression "*ppiVar12" * identifier) )) [ number_literal ]) + number_literal) ))))) ;) (goto_statement "goto LAB_000ae822;" goto statement_identifier ;) })) }))) }))) (labeled_statement "LAB_000ae820:\n  uVar17 = 0;" statement_identifier : (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_000ae822:\n  uVar1 = *(uint *)(iVar6 + 0x54);" statement_identifier : (expression_statement "uVar1 = *(uint *)(iVar6 + 0x54);" (assignment_expression "uVar1 = *(uint *)(iVar6 + 0x54)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x54)" * (cast_expression "(uint *)(iVar6 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x54)" ( (binary_expression "iVar6 + 0x54" identifier + number_literal) ))))) ;)) (expression_statement "*(uint *)((int)ppiVar13 + -4) = uVar17;" (assignment_expression "*(uint *)((int)ppiVar13 + -4) = uVar17" (pointer_expression "*(uint *)((int)ppiVar13 + -4)" * (cast_expression "(uint *)((int)ppiVar13 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -4)" ( (binary_expression "(int)ppiVar13 + -4" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -8)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -8)" ( (binary_expression "(int)ppiVar13 + -8" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x78)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x78)" ( (binary_expression "(int)ppiVar13 + 0x78" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0xc)" ( (binary_expression "(int)ppiVar13 + -0xc" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x70)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x70)" ( (binary_expression "(int)ppiVar13 + 0x70" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x10)" ( (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x6c)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x6c)" ( (binary_expression "(int)ppiVar13 + 0x6c" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x14)" ( (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x68)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x68)" ( (binary_expression "(int)ppiVar13 + 0x68" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x18)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x18)" ( (binary_expression "(int)ppiVar13 + -0x18" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 100)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 100)" ( (binary_expression "(int)ppiVar13 + 100" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x1c)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x1c)" ( (binary_expression "(int)ppiVar13 + -0x1c" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x60)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x60)" ( (binary_expression "(int)ppiVar13 + 0x60" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)((int)ppiVar13 + -0x20) = iVar6;" (assignment_expression "*(int *)((int)ppiVar13 + -0x20) = iVar6" (pointer_expression "*(int *)((int)ppiVar13 + -0x20)" * (cast_expression "(int *)((int)ppiVar13 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x20)" ( (binary_expression "(int)ppiVar13 + -0x20" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x24)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x24)" ( (binary_expression "(int)ppiVar13 + -0x24" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar26 = FUN_00125670();" (assignment_expression "uVar26 = FUN_00125670()" identifier = (call_expression "FUN_00125670()" identifier (argument_list "()" ( )))) ;) (expression_statement "**(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;" (assignment_expression "**(undefined8 **)((int)ppiVar13 + 0x80) = uVar26" (pointer_expression "**(undefined8 **)((int)ppiVar13 + 0x80)" * (pointer_expression "*(undefined8 **)((int)ppiVar13 + 0x80)" * (cast_expression "(undefined8 **)((int)ppiVar13 + 0x80)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + 0x80)" ( (binary_expression "(int)ppiVar13 + 0x80" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) = identifier) ;) (if_statement "if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }" if (parenthesized_expression "(((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0))" ( (binary_expression "((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 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 *)(iVar6 + 0x54)) & 5) != 0)" ( (binary_expression "((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0" (parenthesized_expression "((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5)" ( (binary_expression "(uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5" (parenthesized_expression "(uVar1 ^ *(uint *)(iVar6 + 0x54))" ( (binary_expression "uVar1 ^ *(uint *)(iVar6 + 0x54)" identifier ^ (pointer_expression "*(uint *)(iVar6 + 0x54)" * (cast_expression "(uint *)(iVar6 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x54)" ( (binary_expression "iVar6 + 0x54" identifier + number_literal) ))))) )) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }" { (expression_statement "*(undefined4 *)((int)ppiVar13 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -8) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -8)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -8)" ( (binary_expression "(int)ppiVar13 + -8" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppiVar13 + -0xc) = iVar6;" (assignment_expression "*(int *)((int)ppiVar13 + -0xc) = iVar6" (pointer_expression "*(int *)((int)ppiVar13 + -0xc)" * (cast_expression "(int *)((int)ppiVar13 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0xc)" ( (binary_expression "(int)ppiVar13 + -0xc" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x10)" ( (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x60)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x60)" ( (binary_expression "(int)ppiVar13 + 0x60" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x14)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x14)" ( (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = FUN_00097200();" (assignment_expression "uVar5 = FUN_00097200()" identifier = (call_expression "FUN_00097200()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x5c) = uVar5;" (assignment_expression "*(undefined4 *)(iVar6 + 0x5c) = uVar5" (pointer_expression "*(undefined4 *)(iVar6 + 0x5c)" * (cast_expression "(undefined4 *)(iVar6 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x5c)" ( (binary_expression "iVar6 + 0x5c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1" (pointer_expression "*(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4)" * (cast_expression "(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)ppiVar13 + 0x60) + 0x1c4)" ( (binary_expression "*(int *)((int)ppiVar13 + 0x60) + 0x1c4" (pointer_expression "*(int *)((int)ppiVar13 + 0x60)" * (cast_expression "(int *)((int)ppiVar13 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x60)" ( (binary_expression "(int)ppiVar13 + 0x60" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) = number_literal) ;) (return_statement "return iVar6;" 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 (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 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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , 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)) ;) (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 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 (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 *)) ) 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 ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) + LIT) )))) & 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) + LIT) )))) & 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 *)) ) 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 ]) = (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 (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 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 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_000ae570(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  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  size_t sVar7;\n  byte bVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int **ppiVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  byte *pbVar15;\n  undefined **ppuVar16;\n  uint uVar17;\n  byte *pbVar18;\n  char *pcVar19;\n  bool bVar20;\n  bool bVar21;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  byte bVar25;\n  undefined8 uVar26;\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  bVar25 = 0;\n  uStack_14 = 0xae579;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar4 = FUN_000a7190(param_1,param_2,param_4);\n  ppiVar13 = apiStack_60 + 1;\n  ppiVar12 = apiStack_60 + 1;\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  uVar17 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar17 == 0) goto LAB_000aeb68;\n  if ((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }\n  else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000ae6f0:\n  piVar10 = (int *)ppiVar13[0x18][1];\n  piVar11 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar13[1] = piVar10;\n  bVar8 = *(byte *)(piVar10 + 0x2b);\n  uVar17 = (uint)bVar8;\n  if (bVar8 != 0) {\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }\n  if (piVar11 == (int *)0x0) {\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }\n  bVar20 = false;\n  bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';\n  if (!bVar23) goto LAB_000aea50;\n  iVar9 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar18 = (byte *)ppiVar13[0x1b];\n  do {\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar23) == bVar20;\n  if (bVar20) {\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }\nLAB_000ae820:\n  uVar17 = 0;\nLAB_000ae822:\n  uVar1 = *(uint *)(iVar6 + 0x54);\n  *(uint *)((int)ppiVar13 + -4) = uVar17;\n  *(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);\n  *(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);\n  *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);\n  *(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);\n  *(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);\n  *(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);\n  *(int *)((int)ppiVar13 + -0x20) = iVar6;\n  *(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;\n  uVar26 = FUN_00125670();\n  **(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;\n  return iVar6;\n}" (primitive_type "int") (function_declarator "FUN_000ae570(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_000ae570") (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  char cVar4;\n  undefined4 uVar5;\n  int iVar6;\n  size_t sVar7;\n  byte bVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  int **ppiVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  byte *pbVar15;\n  undefined **ppuVar16;\n  uint uVar17;\n  byte *pbVar18;\n  char *pcVar19;\n  bool bVar20;\n  bool bVar21;\n  undefined1 uVar22;\n  bool bVar23;\n  undefined1 uVar24;\n  byte bVar25;\n  undefined8 uVar26;\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  bVar25 = 0;\n  uStack_14 = 0xae579;\n  *param_9 = 0;\n  param_9[1] = 0;\n  apiStack_60[0] = param_5;\n  cVar4 = FUN_000a7190(param_1,param_2,param_4);\n  ppiVar13 = apiStack_60 + 1;\n  ppiVar12 = apiStack_60 + 1;\n  if (cVar4 == '\0') {\n    return 0;\n  }\n  uVar17 = *(uint *)(DAT_0038f378 + 8);\n  if (uVar17 == 0) goto LAB_000aeb68;\n  if ((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }\n  else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }\nLAB_000ae6f0:\n  piVar10 = (int *)ppiVar13[0x18][1];\n  piVar11 = *(int **)(*apiStack_60[1] + 8);\n  ppiVar13[1] = piVar10;\n  bVar8 = *(byte *)(piVar10 + 0x2b);\n  uVar17 = (uint)bVar8;\n  if (bVar8 != 0) {\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }\n  if (piVar11 == (int *)0x0) {\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }\n  bVar20 = false;\n  bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';\n  if (!bVar23) goto LAB_000aea50;\n  iVar9 = 7;\n  pbVar15 = (byte *)".ctors.";\n  pbVar18 = (byte *)ppiVar13[0x1b];\n  do {\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  } while (bVar23);\n  bVar21 = false;\n  bVar20 = (!bVar20 && !bVar23) == bVar20;\n  if (bVar20) {\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }\nLAB_000ae820:\n  uVar17 = 0;\nLAB_000ae822:\n  uVar1 = *(uint *)(iVar6 + 0x54);\n  *(uint *)((int)ppiVar13 + -4) = uVar17;\n  *(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);\n  *(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);\n  *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);\n  *(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);\n  *(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);\n  *(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);\n  *(int *)((int)ppiVar13 + -0x20) = iVar6;\n  *(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;\n  uVar26 = FUN_00125670();\n  **(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;\n  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }\n  *(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;\n  return iVar6;\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 "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int **ppiVar12;" (primitive_type "int") (pointer_declarator "**ppiVar12" (* "*") (pointer_declarator "*ppiVar12" (* "*") (identifier "ppiVar12"))) (; ";")) (declaration "int **ppiVar13;" (primitive_type "int") (pointer_declarator "**ppiVar13" (* "*") (pointer_declarator "*ppiVar13" (* "*") (identifier "ppiVar13"))) (; ";")) (declaration "int **ppiVar14;" (primitive_type "int") (pointer_declarator "**ppiVar14" (* "*") (pointer_declarator "*ppiVar14" (* "*") (identifier "ppiVar14"))) (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "undefined **ppuVar16;" (type_identifier "undefined") (pointer_declarator "**ppuVar16" (* "*") (pointer_declarator "*ppuVar16" (* "*") (identifier "ppuVar16"))) (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "char *pcVar19;" (primitive_type "char") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "bool bVar20;" (primitive_type "bool") (identifier "bVar20") (; ";")) (declaration "bool bVar21;" (primitive_type "bool") (identifier "bVar21") (; ";")) (declaration "undefined1 uVar22;" (type_identifier "undefined1") (identifier "uVar22") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "undefined1 uVar24;" (type_identifier "undefined1") (identifier "uVar24") (; ";")) (declaration "byte bVar25;" (type_identifier "byte") (identifier "bVar25") (; ";")) (declaration "undefined8 uVar26;" (type_identifier "undefined8") (identifier "uVar26") (; ";")) (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 "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0xae579;" (assignment_expression "uStack_14 = 0xae579" (identifier "uStack_14") (= "=") (number_literal "0xae579")) (; ";")) (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 "cVar4 = FUN_000a7190(param_1,param_2,param_4);" (assignment_expression "cVar4 = FUN_000a7190(param_1,param_2,param_4)" (identifier "cVar4") (= "=") (call_expression "FUN_000a7190(param_1,param_2,param_4)" (identifier "FUN_000a7190") (argument_list "(param_1,param_2,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "ppiVar13 = apiStack_60 + 1;" (assignment_expression "ppiVar13 = apiStack_60 + 1" (identifier "ppiVar13") (= "=") (binary_expression "apiStack_60 + 1" (identifier "apiStack_60") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppiVar12 = apiStack_60 + 1;" (assignment_expression "ppiVar12 = apiStack_60 + 1" (identifier "ppiVar12") (= "=") (binary_expression "apiStack_60 + 1" (identifier "apiStack_60") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar4 == '\0') {\n    return 0;\n  }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar17 = *(uint *)(DAT_0038f378 + 8);" (assignment_expression "uVar17 = *(uint *)(DAT_0038f378 + 8)" (identifier "uVar17") (= "=") (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 (uVar17 == 0) goto LAB_000aeb68;" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000aeb68;" (goto "goto") (statement_identifier "LAB_000aeb68") (; ";"))) (if_statement "if ((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }\n  else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" (if "if") (parenthesized_expression "((*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0))" (( "(") (binary_expression "(*(char *)(uVar17 + 0x318d) == '\0') ||\n     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)" (parenthesized_expression "(*(char *)(uVar17 + 0x318d) == '\0')" (( "(") (binary_expression "*(char *)(uVar17 + 0x318d) == '\0'" (pointer_expression "*(char *)(uVar17 + 0x318d)" (* "*") (cast_expression "(char *)(uVar17 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar17 + 0x318d)" (( "(") (binary_expression "uVar17 + 0x318d" (identifier "uVar17") (+ "+") (number_literal "0x318d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)" (( "(") (comma_expression "uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0" (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")) () ")"))))) (, ",") (binary_expression "(uVar1 & 0x200) == 0" (parenthesized_expression "(uVar1 & 0x200)" (( "(") (binary_expression "uVar1 & 0x200" (identifier "uVar1") (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    piVar10 = &DAT_0038f378;\n    if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }\n    ppiVar12[1] = piVar10;\n    ppiVar12[10] = ppiVar12[0x19];\n    ppiVar12[0xb] = ppiVar12[0x1a];\n    ppiVar12[-2] = (int *)local_34;\n    ppiVar12[-3] = ppiVar12[0x18] + 0x81;\n    ppiVar12[-4] = (int *)(ppiVar12 + 7);\n    ppiVar12[-5] = (int *)0xae625;\n    FUN_000a9000();\n    piVar10 = ppiVar12[6];\n    ppiVar14 = ppiVar12 + -1;\n    if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }\n  }" ({ "{") (expression_statement "piVar10 = &DAT_0038f378;" (assignment_expression "piVar10 = &DAT_0038f378" (identifier "piVar10") (= "=") (pointer_expression "&DAT_0038f378" (& "&") (identifier "DAT_0038f378"))) (; ";")) (if_statement "if (*(char *)(uVar17 + 0x5871) != '\0') {\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }" (if "if") (parenthesized_expression "(*(char *)(uVar17 + 0x5871) != '\0')" (( "(") (binary_expression "*(char *)(uVar17 + 0x5871) != '\0'" (pointer_expression "*(char *)(uVar17 + 0x5871)" (* "*") (cast_expression "(char *)(uVar17 + 0x5871)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar17 + 0x5871)" (( "(") (binary_expression "uVar17 + 0x5871" (identifier "uVar17") (+ "+") (number_literal "0x5871")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar22 = apiStack_60 + 1 < (int **)0x4;\n      uVar24 = &stack0x00000000 == (undefined1 *)0x60;\n      apiStack_60[2] = &DAT_0038f378;\n      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);\n      iVar6 = 0xe;\n      apiStack_60[2] = (int *)0x28a53f;\n      pbVar15 = (byte *)".text.unlikely";\n      pbVar18 = (byte *)local_40[2];\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);\n      ppiVar12 = apiStack_60;\n      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }\n      piVar10 = apiStack_60[1];\n      if ((byte *)local_40[2] != local_30) {\n        FUN_001e6db0(local_40[2]);\n        ppiVar12 = apiStack_60;\n        piVar10 = apiStack_60[1];\n      }\n    }" ({ "{") (expression_statement "uVar22 = apiStack_60 + 1 < (int **)0x4;" (assignment_expression "uVar22 = apiStack_60 + 1 < (int **)0x4" (identifier "uVar22") (= "=") (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 "uVar24 = &stack0x00000000 == (undefined1 *)0x60;" (assignment_expression "uVar24 = &stack0x00000000 == (undefined1 *)0x60" (identifier "uVar24") (= "=") (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 "iVar6 = 0xe;" (assignment_expression "iVar6 = 0xe" (identifier "iVar6") (= "=") (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 "pbVar15 = (byte *)".text.unlikely";" (assignment_expression "pbVar15 = (byte *)".text.unlikely"" (identifier "pbVar15") (= "=") (cast_expression "(byte *)".text.unlikely"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".text.unlikely"" (" """) (string_content ".text.unlikely") (" """)))) (; ";")) (expression_statement "pbVar18 = (byte *)local_40[2];" (assignment_expression "pbVar18 = (byte *)local_40[2]" (identifier "pbVar18") (= "=") (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 (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while ((bool)uVar24);" (do "do") (compound_statement "{\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar22 = *pbVar15 < *pbVar18;\n        uVar24 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar6 == 0) break;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar22 = *pbVar15 < *pbVar18;" (assignment_expression "uVar22 = *pbVar15 < *pbVar18" (identifier "uVar22") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "uVar24 = *pbVar15 == *pbVar18;" (assignment_expression "uVar24 = *pbVar15 == *pbVar18" (identifier "uVar24") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar24)" (( "(") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")) () ")")) (; ";")) (expression_statement "ppiVar12 = apiStack_60;" (assignment_expression "ppiVar12 = apiStack_60" (identifier "ppiVar12") (= "=") (identifier "apiStack_60")) (; ";")) (if_statement "if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\n      }" (if "if") (parenthesized_expression "((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22)" (( "(") (binary_expression "(!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22" (parenthesized_expression "(!(bool)uVar22 && !(bool)uVar24)" (( "(") (binary_expression "!(bool)uVar22 && !(bool)uVar24" (unary_expression "!(bool)uVar22" (! "!") (cast_expression "(bool)uVar22" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar22"))) (&& "&&") (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24")))) () ")")) (== "==") (cast_expression "(bool)uVar22" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar22"))) () ")")) (compound_statement "{\n        if ((byte *)local_40[2] != local_30) {\n          FUN_001e6db0(local_40[2]);\n        }\n        ppiVar14 = apiStack_60;\n        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;\n        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;\n        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }\n        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);\n        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);\n        ppiVar13 = apiStack_60;\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        goto LAB_000ae6f0;\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 "ppiVar14 = apiStack_60;" (assignment_expression "ppiVar14 = apiStack_60" (identifier "ppiVar14") (= "=") (identifier "apiStack_60")) (; ";")) (if_statement "if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;" (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_000aec2b;" (goto "goto") (statement_identifier "LAB_000aec2b") (; ";"))) (expression_statement "uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;" (assignment_expression "uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f" (identifier "uVar17") (= "=") (binary_expression "*(uint *)(*param_4 + 8) & 0xfffff50f" (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")) () ")")))) (& "&") (number_literal "0xfffff50f"))) (; ";")) (if_statement "if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {\n          uVar17 = *(uint *)(*param_4 + 8) & 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          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;\n        }" ({ "{") (expression_statement "uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;" (assignment_expression "uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f" (identifier "uVar17") (= "=") (binary_expression "*(uint *)(*param_4 + 8) & 0xfffff58f" (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")) () ")")))) (& "&") (number_literal "0xfffff58f"))) (; ";")) (} "}"))) (expression_statement "uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);" (assignment_expression "uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34)" (identifier "uVar5") (= "=") (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 "iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);" (assignment_expression "iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0)" (identifier "iVar6") (= "=") (call_expression "FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0)" (identifier "FUN_0009fd60") (argument_list "(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0)" (( "(") (identifier "unaff_retaddr") (, ",") (identifier "uVar5") (, ",") (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "param_5") (, ",") (identifier "uVar17") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "ppiVar13 = apiStack_60;" (assignment_expression "ppiVar13 = apiStack_60" (identifier "ppiVar13") (= "=") (identifier "apiStack_60")) (; ";")) (expression_statement "*(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;" (assignment_expression "*(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar6 + 0x92)" (* "*") (cast_expression "(byte *)(iVar6 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x92)" (( "(") (binary_expression "iVar6 + 0x92" (identifier "iVar6") (+ "+") (number_literal "0x92")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar6 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar6 + 0x92)" (* "*") (cast_expression "(byte *)(iVar6 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x92)" (( "(") (binary_expression "iVar6 + 0x92" (identifier "iVar6") (+ "+") (number_literal "0x92")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (goto_statement "goto LAB_000ae6f0;" (goto "goto") (statement_identifier "LAB_000ae6f0") (; ";")) (} "}"))) (expression_statement "piVar10 = apiStack_60[1];" (assignment_expression "piVar10 = apiStack_60[1]" (identifier "piVar10") (= "=") (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        ppiVar12 = apiStack_60;\n        piVar10 = 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        ppiVar12 = apiStack_60;\n        piVar10 = 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 "ppiVar12 = apiStack_60;" (assignment_expression "ppiVar12 = apiStack_60" (identifier "ppiVar12") (= "=") (identifier "apiStack_60")) (; ";")) (expression_statement "piVar10 = apiStack_60[1];" (assignment_expression "piVar10 = apiStack_60[1]" (identifier "piVar10") (= "=") (subscript_expression "apiStack_60[1]" (identifier "apiStack_60") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "ppiVar12[1] = piVar10;" (assignment_expression "ppiVar12[1] = piVar10" (subscript_expression "ppiVar12[1]" (identifier "ppiVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "ppiVar12[10] = ppiVar12[0x19];" (assignment_expression "ppiVar12[10] = ppiVar12[0x19]" (subscript_expression "ppiVar12[10]" (identifier "ppiVar12") ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "ppiVar12[0x19]" (identifier "ppiVar12") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "ppiVar12[0xb] = ppiVar12[0x1a];" (assignment_expression "ppiVar12[0xb] = ppiVar12[0x1a]" (subscript_expression "ppiVar12[0xb]" (identifier "ppiVar12") ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "ppiVar12[0x1a]" (identifier "ppiVar12") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "ppiVar12[-2] = (int *)local_34;" (assignment_expression "ppiVar12[-2] = (int *)local_34" (subscript_expression "ppiVar12[-2]" (identifier "ppiVar12") ([ "[") (number_literal "-2") (] "]")) (= "=") (cast_expression "(int *)local_34" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_34"))) (; ";")) (expression_statement "ppiVar12[-3] = ppiVar12[0x18] + 0x81;" (assignment_expression "ppiVar12[-3] = ppiVar12[0x18] + 0x81" (subscript_expression "ppiVar12[-3]" (identifier "ppiVar12") ([ "[") (number_literal "-3") (] "]")) (= "=") (binary_expression "ppiVar12[0x18] + 0x81" (subscript_expression "ppiVar12[0x18]" (identifier "ppiVar12") ([ "[") (number_literal "0x18") (] "]")) (+ "+") (number_literal "0x81"))) (; ";")) (expression_statement "ppiVar12[-4] = (int *)(ppiVar12 + 7);" (assignment_expression "ppiVar12[-4] = (int *)(ppiVar12 + 7)" (subscript_expression "ppiVar12[-4]" (identifier "ppiVar12") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int *)(ppiVar12 + 7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar12 + 7)" (( "(") (binary_expression "ppiVar12 + 7" (identifier "ppiVar12") (+ "+") (number_literal "7")) () ")")))) (; ";")) (expression_statement "ppiVar12[-5] = (int *)0xae625;" (assignment_expression "ppiVar12[-5] = (int *)0xae625" (subscript_expression "ppiVar12[-5]" (identifier "ppiVar12") ([ "[") (number_literal "-5") (] "]")) (= "=") (cast_expression "(int *)0xae625" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xae625"))) (; ";")) (expression_statement "FUN_000a9000();" (call_expression "FUN_000a9000()" (identifier "FUN_000a9000") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar10 = ppiVar12[6];" (assignment_expression "piVar10 = ppiVar12[6]" (identifier "piVar10") (= "=") (subscript_expression "ppiVar12[6]" (identifier "ppiVar12") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "ppiVar14 = ppiVar12 + -1;" (assignment_expression "ppiVar14 = ppiVar12 + -1" (identifier "ppiVar14") (= "=") (binary_expression "ppiVar12 + -1" (identifier "ppiVar12") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (piVar10 == ppiVar12[0x17] + 0x82) {\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }\n    else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }" (if "if") (parenthesized_expression "(piVar10 == ppiVar12[0x17] + 0x82)" (( "(") (binary_expression "piVar10 == ppiVar12[0x17] + 0x82" (identifier "piVar10") (== "==") (binary_expression "ppiVar12[0x17] + 0x82" (subscript_expression "ppiVar12[0x17]" (identifier "ppiVar12") ([ "[") (number_literal "0x17") (] "]")) (+ "+") (number_literal "0x82"))) () ")")) (compound_statement "{\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)0x0;\n      ppiVar12[-6] = (int *)0x0;\n      ppiVar12[-7] = (int *)0x1;\n      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);\n      ppiVar12[-8] = (int *)0x0;\n      ppiVar12[-9] = (int *)uVar5;\n      ppiVar12[-10] = ppiVar12[0x1c];\n      ppiVar12[-0xb] = ppiVar12[0x1a];\n      ppiVar12[-0xc] = ppiVar12[0x18];\n      ppiVar12[-0xd] = ppiVar12[0x17];\n      ppiVar12[-0xe] = (int *)0xae9ae;\n      iVar6 = FUN_0009fff0();\n      ppiVar13 = ppiVar12 + -1;\n      apiStack_60[1] = *ppiVar12;\n      if (iVar6 == 0) {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "ppiVar12[-3] = (int *)0x1;" (assignment_expression "ppiVar12[-3] = (int *)0x1" (subscript_expression "ppiVar12[-3]" (identifier "ppiVar12") ([ "[") (number_literal "-3") (] "]")) (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppiVar12[-4] = (int *)0x0;" (assignment_expression "ppiVar12[-4] = (int *)0x0" (subscript_expression "ppiVar12[-4]" (identifier "ppiVar12") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar12[-5] = (int *)0x0;" (assignment_expression "ppiVar12[-5] = (int *)0x0" (subscript_expression "ppiVar12[-5]" (identifier "ppiVar12") ([ "[") (number_literal "-5") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar12[-6] = (int *)0x0;" (assignment_expression "ppiVar12[-6] = (int *)0x0" (subscript_expression "ppiVar12[-6]" (identifier "ppiVar12") ([ "[") (number_literal "-6") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar12[-7] = (int *)0x1;" (assignment_expression "ppiVar12[-7] = (int *)0x1" (subscript_expression "ppiVar12[-7]" (identifier "ppiVar12") ([ "[") (number_literal "-7") (] "]")) (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);" (assignment_expression "uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(*ppiVar12[0x1b] + 8)" (* "*") (cast_expression "(undefined4 *)(*ppiVar12[0x1b] + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*ppiVar12[0x1b] + 8)" (( "(") (binary_expression "*ppiVar12[0x1b] + 8" (pointer_expression "*ppiVar12[0x1b]" (* "*") (subscript_expression "ppiVar12[0x1b]" (identifier "ppiVar12") ([ "[") (number_literal "0x1b") (] "]"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "ppiVar12[-8] = (int *)0x0;" (assignment_expression "ppiVar12[-8] = (int *)0x0" (subscript_expression "ppiVar12[-8]" (identifier "ppiVar12") ([ "[") (number_literal "-8") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar12[-9] = (int *)uVar5;" (assignment_expression "ppiVar12[-9] = (int *)uVar5" (subscript_expression "ppiVar12[-9]" (identifier "ppiVar12") ([ "[") (number_literal "-9") (] "]")) (= "=") (cast_expression "(int *)uVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "ppiVar12[-10] = ppiVar12[0x1c];" (assignment_expression "ppiVar12[-10] = ppiVar12[0x1c]" (subscript_expression "ppiVar12[-10]" (identifier "ppiVar12") ([ "[") (number_literal "-10") (] "]")) (= "=") (subscript_expression "ppiVar12[0x1c]" (identifier "ppiVar12") ([ "[") (number_literal "0x1c") (] "]"))) (; ";")) (expression_statement "ppiVar12[-0xb] = ppiVar12[0x1a];" (assignment_expression "ppiVar12[-0xb] = ppiVar12[0x1a]" (subscript_expression "ppiVar12[-0xb]" (identifier "ppiVar12") ([ "[") (number_literal "-0xb") (] "]")) (= "=") (subscript_expression "ppiVar12[0x1a]" (identifier "ppiVar12") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "ppiVar12[-0xc] = ppiVar12[0x18];" (assignment_expression "ppiVar12[-0xc] = ppiVar12[0x18]" (subscript_expression "ppiVar12[-0xc]" (identifier "ppiVar12") ([ "[") (number_literal "-0xc") (] "]")) (= "=") (subscript_expression "ppiVar12[0x18]" (identifier "ppiVar12") ([ "[") (number_literal "0x18") (] "]"))) (; ";")) (expression_statement "ppiVar12[-0xd] = ppiVar12[0x17];" (assignment_expression "ppiVar12[-0xd] = ppiVar12[0x17]" (subscript_expression "ppiVar12[-0xd]" (identifier "ppiVar12") ([ "[") (number_literal "-0xd") (] "]")) (= "=") (subscript_expression "ppiVar12[0x17]" (identifier "ppiVar12") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "ppiVar12[-0xe] = (int *)0xae9ae;" (assignment_expression "ppiVar12[-0xe] = (int *)0xae9ae" (subscript_expression "ppiVar12[-0xe]" (identifier "ppiVar12") ([ "[") (number_literal "-0xe") (] "]")) (= "=") (cast_expression "(int *)0xae9ae" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xae9ae"))) (; ";")) (expression_statement "iVar6 = FUN_0009fff0();" (assignment_expression "iVar6 = FUN_0009fff0()" (identifier "iVar6") (= "=") (call_expression "FUN_0009fff0()" (identifier "FUN_0009fff0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ppiVar13 = ppiVar12 + -1;" (assignment_expression "ppiVar13 = ppiVar12 + -1" (identifier "ppiVar13") (= "=") (binary_expression "ppiVar12 + -1" (identifier "ppiVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "apiStack_60[1] = *ppiVar12;" (assignment_expression "apiStack_60[1] = *ppiVar12" (subscript_expression "apiStack_60[1]" (identifier "apiStack_60") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*ppiVar12" (* "*") (identifier "ppiVar12"))) (; ";")) (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }" (else "else") (compound_statement "{\n      iVar6 = *(int *)(**ppiVar12 + 8);\n      if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }\n      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;\n      if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }\n      puVar2 = (undefined4 *)piVar10[6];\n      *ppiVar12 = *ppiVar12;\n      ppiVar12[-2] = (int *)local_34;\n      ppiVar12[-3] = (int *)0x1;\n      ppiVar12[-4] = (int *)*puVar2;\n      ppiVar12[-5] = ppiVar12[0x17] + 2;\n      ppiVar12[-6] = (int *)0xae68b;\n      uVar5 = FUN_00174930();\n      ppiVar12[-2] = (int *)0x0;\n      ppiVar12[-3] = (int *)0x0;\n      ppiVar12[-4] = (int *)0x0;\n      ppiVar12[-5] = (int *)uVar17;\n      ppiVar12[-6] = ppiVar12[0x1c];\n      ppiVar12[-7] = ppiVar12[9];\n      ppiVar12[-8] = (int *)uVar5;\n      ppiVar12[-9] = ppiVar12[0x17];\n      ppiVar12[-10] = (int *)0xae6a9;\n      iVar6 = FUN_0009fd60();\n      apiStack_60[1] = *ppiVar12;\n      ppiVar13 = ppiVar12 + -1;\n      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }\n    }" ({ "{") (expression_statement "iVar6 = *(int *)(**ppiVar12 + 8);" (assignment_expression "iVar6 = *(int *)(**ppiVar12 + 8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(**ppiVar12 + 8)" (* "*") (cast_expression "(int *)(**ppiVar12 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**ppiVar12 + 8)" (( "(") (binary_expression "**ppiVar12 + 8" (pointer_expression "**ppiVar12" (* "*") (pointer_expression "*ppiVar12" (* "*") (identifier "ppiVar12"))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar6 == 0) {\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;\n        FUN_00096010();\n      }" ({ "{") (labeled_statement "LAB_000aec2b:\n                    \n        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;" (statement_identifier "LAB_000aec2b") (: ":") (expression_statement "*(code **)((int)ppiVar14 + -4) = FUN_000aec30;" (assignment_expression "*(code **)((int)ppiVar14 + -4) = FUN_000aec30" (pointer_expression "*(code **)((int)ppiVar14 + -4)" (* "*") (cast_expression "(code **)((int)ppiVar14 + -4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar14 + -4)" (( "(") (binary_expression "(int)ppiVar14 + -4" (cast_expression "(int)ppiVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar14")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "FUN_000aec30")) (; ";"))) (expression_statement "FUN_00096010();" (call_expression "FUN_00096010()" (identifier "FUN_00096010") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;" (assignment_expression "uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f" (identifier "uVar17") (= "=") (binary_expression "*(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f" (pointer_expression "*(uint *)(*ppiVar12[0x1b] + 8)" (* "*") (cast_expression "(uint *)(*ppiVar12[0x1b] + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*ppiVar12[0x1b] + 8)" (( "(") (binary_expression "*ppiVar12[0x1b] + 8" (pointer_expression "*ppiVar12[0x1b]" (* "*") (subscript_expression "ppiVar12[0x1b]" (identifier "ppiVar12") ([ "[") (number_literal "0x1b") (] "]"))) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0xfffff50f"))) (; ";")) (if_statement "if (*(char *)(iVar6 + 0x318d) != '\0') {\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar6 + 0x318d) != '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0x318d) != '\0'" (pointer_expression "*(char *)(iVar6 + 0x318d)" (* "*") (cast_expression "(char *)(iVar6 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x318d)" (( "(") (binary_expression "iVar6 + 0x318d" (identifier "iVar6") (+ "+") (number_literal "0x318d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;\n      }" ({ "{") (expression_statement "uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;" (assignment_expression "uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f" (identifier "uVar17") (= "=") (binary_expression "*(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f" (pointer_expression "*(uint *)(*ppiVar12[0x1b] + 8)" (* "*") (cast_expression "(uint *)(*ppiVar12[0x1b] + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*ppiVar12[0x1b] + 8)" (( "(") (binary_expression "*ppiVar12[0x1b] + 8" (pointer_expression "*ppiVar12[0x1b]" (* "*") (subscript_expression "ppiVar12[0x1b]" (identifier "ppiVar12") ([ "[") (number_literal "0x1b") (] "]"))) (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0xfffff58f"))) (; ";")) (} "}"))) (expression_statement "puVar2 = (undefined4 *)piVar10[6];" (assignment_expression "puVar2 = (undefined4 *)piVar10[6]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)piVar10[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar10[6]" (identifier "piVar10") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "*ppiVar12 = *ppiVar12;" (assignment_expression "*ppiVar12 = *ppiVar12" (pointer_expression "*ppiVar12" (* "*") (identifier "ppiVar12")) (= "=") (pointer_expression "*ppiVar12" (* "*") (identifier "ppiVar12"))) (; ";")) (expression_statement "ppiVar12[-2] = (int *)local_34;" (assignment_expression "ppiVar12[-2] = (int *)local_34" (subscript_expression "ppiVar12[-2]" (identifier "ppiVar12") ([ "[") (number_literal "-2") (] "]")) (= "=") (cast_expression "(int *)local_34" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_34"))) (; ";")) (expression_statement "ppiVar12[-3] = (int *)0x1;" (assignment_expression "ppiVar12[-3] = (int *)0x1" (subscript_expression "ppiVar12[-3]" (identifier "ppiVar12") ([ "[") (number_literal "-3") (] "]")) (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppiVar12[-4] = (int *)*puVar2;" (assignment_expression "ppiVar12[-4] = (int *)*puVar2" (subscript_expression "ppiVar12[-4]" (identifier "ppiVar12") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int *)*puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";")) (expression_statement "ppiVar12[-5] = ppiVar12[0x17] + 2;" (assignment_expression "ppiVar12[-5] = ppiVar12[0x17] + 2" (subscript_expression "ppiVar12[-5]" (identifier "ppiVar12") ([ "[") (number_literal "-5") (] "]")) (= "=") (binary_expression "ppiVar12[0x17] + 2" (subscript_expression "ppiVar12[0x17]" (identifier "ppiVar12") ([ "[") (number_literal "0x17") (] "]")) (+ "+") (number_literal "2"))) (; ";")) (expression_statement "ppiVar12[-6] = (int *)0xae68b;" (assignment_expression "ppiVar12[-6] = (int *)0xae68b" (subscript_expression "ppiVar12[-6]" (identifier "ppiVar12") ([ "[") (number_literal "-6") (] "]")) (= "=") (cast_expression "(int *)0xae68b" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xae68b"))) (; ";")) (expression_statement "uVar5 = FUN_00174930();" (assignment_expression "uVar5 = FUN_00174930()" (identifier "uVar5") (= "=") (call_expression "FUN_00174930()" (identifier "FUN_00174930") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ppiVar12[-2] = (int *)0x0;" (assignment_expression "ppiVar12[-2] = (int *)0x0" (subscript_expression "ppiVar12[-2]" (identifier "ppiVar12") ([ "[") (number_literal "-2") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar12[-3] = (int *)0x0;" (assignment_expression "ppiVar12[-3] = (int *)0x0" (subscript_expression "ppiVar12[-3]" (identifier "ppiVar12") ([ "[") (number_literal "-3") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar12[-4] = (int *)0x0;" (assignment_expression "ppiVar12[-4] = (int *)0x0" (subscript_expression "ppiVar12[-4]" (identifier "ppiVar12") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar12[-5] = (int *)uVar17;" (assignment_expression "ppiVar12[-5] = (int *)uVar17" (subscript_expression "ppiVar12[-5]" (identifier "ppiVar12") ([ "[") (number_literal "-5") (] "]")) (= "=") (cast_expression "(int *)uVar17" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar17"))) (; ";")) (expression_statement "ppiVar12[-6] = ppiVar12[0x1c];" (assignment_expression "ppiVar12[-6] = ppiVar12[0x1c]" (subscript_expression "ppiVar12[-6]" (identifier "ppiVar12") ([ "[") (number_literal "-6") (] "]")) (= "=") (subscript_expression "ppiVar12[0x1c]" (identifier "ppiVar12") ([ "[") (number_literal "0x1c") (] "]"))) (; ";")) (expression_statement "ppiVar12[-7] = ppiVar12[9];" (assignment_expression "ppiVar12[-7] = ppiVar12[9]" (subscript_expression "ppiVar12[-7]" (identifier "ppiVar12") ([ "[") (number_literal "-7") (] "]")) (= "=") (subscript_expression "ppiVar12[9]" (identifier "ppiVar12") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "ppiVar12[-8] = (int *)uVar5;" (assignment_expression "ppiVar12[-8] = (int *)uVar5" (subscript_expression "ppiVar12[-8]" (identifier "ppiVar12") ([ "[") (number_literal "-8") (] "]")) (= "=") (cast_expression "(int *)uVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar5"))) (; ";")) (expression_statement "ppiVar12[-9] = ppiVar12[0x17];" (assignment_expression "ppiVar12[-9] = ppiVar12[0x17]" (subscript_expression "ppiVar12[-9]" (identifier "ppiVar12") ([ "[") (number_literal "-9") (] "]")) (= "=") (subscript_expression "ppiVar12[0x17]" (identifier "ppiVar12") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "ppiVar12[-10] = (int *)0xae6a9;" (assignment_expression "ppiVar12[-10] = (int *)0xae6a9" (subscript_expression "ppiVar12[-10]" (identifier "ppiVar12") ([ "[") (number_literal "-10") (] "]")) (= "=") (cast_expression "(int *)0xae6a9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xae6a9"))) (; ";")) (expression_statement "iVar6 = FUN_0009fd60();" (assignment_expression "iVar6 = FUN_0009fd60()" (identifier "iVar6") (= "=") (call_expression "FUN_0009fd60()" (identifier "FUN_0009fd60") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "apiStack_60[1] = *ppiVar12;" (assignment_expression "apiStack_60[1] = *ppiVar12" (subscript_expression "apiStack_60[1]" (identifier "apiStack_60") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*ppiVar12" (* "*") (identifier "ppiVar12"))) (; ";")) (expression_statement "ppiVar13 = ppiVar12 + -1;" (assignment_expression "ppiVar13 = ppiVar12 + -1" (identifier "ppiVar13") (= "=") (binary_expression "ppiVar12 + -1" (identifier "ppiVar12") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (-1 < (char)*(byte *)(iVar6 + 0x92)) {\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }" (if "if") (parenthesized_expression "(-1 < (char)*(byte *)(iVar6 + 0x92))" (( "(") (binary_expression "-1 < (char)*(byte *)(iVar6 + 0x92)" (number_literal "-1") (< "<") (cast_expression "(char)*(byte *)(iVar6 + 0x92)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(iVar6 + 0x92)" (* "*") (cast_expression "(byte *)(iVar6 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x92)" (( "(") (binary_expression "iVar6 + 0x92" (identifier "iVar6") (+ "+") (number_literal "0x92")) () ")")))))) () ")")) (compound_statement "{\n        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;\n        iVar9 = piVar10[6];\n        uVar5 = *(undefined4 *)(iVar9 + 8);\n        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);\n        uVar3 = *(undefined4 *)(iVar9 + 0xc);\n        *(undefined4 *)(iVar6 + 0xa0) = uVar5;\n        uVar5 = *(undefined4 *)(iVar9 + 0x10);\n        *(undefined4 *)(iVar6 + 0xa4) = uVar3;\n        *(undefined4 *)(iVar6 + 0xa8) = uVar5;\n        ppiVar13 = ppiVar12 + -1;\n      }" ({ "{") (expression_statement "*(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;" (assignment_expression "*(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar6 + 0x92)" (* "*") (cast_expression "(byte *)(iVar6 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x92)" (( "(") (binary_expression "iVar6 + 0x92" (identifier "iVar6") (+ "+") (number_literal "0x92")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar6 + 0x92) | 0x80" (pointer_expression "*(byte *)(iVar6 + 0x92)" (* "*") (cast_expression "(byte *)(iVar6 + 0x92)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x92)" (( "(") (binary_expression "iVar6 + 0x92" (identifier "iVar6") (+ "+") (number_literal "0x92")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (expression_statement "iVar9 = piVar10[6];" (assignment_expression "iVar9 = piVar10[6]" (identifier "iVar9") (= "=") (subscript_expression "piVar10[6]" (identifier "piVar10") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(iVar9 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar9 + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);" (assignment_expression "*(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4)" (pointer_expression "*(undefined4 *)(iVar6 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x9c)" (( "(") (binary_expression "iVar6 + 0x9c" (identifier "iVar6") (+ "+") (number_literal "0x9c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(iVar9 + 0xc);" (assignment_expression "uVar3 = *(undefined4 *)(iVar9 + 0xc)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0xa0) = uVar5;" (assignment_expression "*(undefined4 *)(iVar6 + 0xa0) = uVar5" (pointer_expression "*(undefined4 *)(iVar6 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xa0)" (( "(") (binary_expression "iVar6 + 0xa0" (identifier "iVar6") (+ "+") (number_literal "0xa0")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(iVar9 + 0x10);" (assignment_expression "uVar5 = *(undefined4 *)(iVar9 + 0x10)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0xa4) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 0xa4) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xa4)" (( "(") (binary_expression "iVar6 + 0xa4" (identifier "iVar6") (+ "+") (number_literal "0xa4")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0xa8) = uVar5;" (assignment_expression "*(undefined4 *)(iVar6 + 0xa8) = uVar5" (pointer_expression "*(undefined4 *)(iVar6 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xa8)" (( "(") (binary_expression "iVar6 + 0xa8" (identifier "iVar6") (+ "+") (number_literal "0xa8")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "ppiVar13 = ppiVar12 + -1;" (assignment_expression "ppiVar13 = ppiVar12 + -1" (identifier "ppiVar13") (= "=") (binary_expression "ppiVar12 + -1" (identifier "ppiVar12") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" (else "else") (compound_statement "{\n    apiStack_60[0] = (int *)0x0;\n    apiStack_60[2] = &DAT_0038f378;\n    uVar5 = FUN_00174930(param_1 + 8,param_4,1);\n    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);\n    ppiVar13 = apiStack_60 + 1;\n    apiStack_60[1] = apiStack_60[2];\n  }" ({ "{") (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 "uVar5 = FUN_00174930(param_1 + 8,param_4,1);" (assignment_expression "uVar5 = FUN_00174930(param_1 + 8,param_4,1)" (identifier "uVar5") (= "=") (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 "iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);" (assignment_expression "iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0)" (identifier "iVar6") (= "=") (call_expression "FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0)" (identifier "FUN_0009b860") (argument_list "(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar5") (, ",") (identifier "param_6") (, ",") (binary_expression "uVar1 & 0xfffff7ff" (identifier "uVar1") (& "&") (number_literal "0xfffff7ff")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "ppiVar13 = apiStack_60 + 1;" (assignment_expression "ppiVar13 = apiStack_60 + 1" (identifier "ppiVar13") (= "=") (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_000ae6f0:\n  piVar10 = (int *)ppiVar13[0x18][1];" (statement_identifier "LAB_000ae6f0") (: ":") (expression_statement "piVar10 = (int *)ppiVar13[0x18][1];" (assignment_expression "piVar10 = (int *)ppiVar13[0x18][1]" (identifier "piVar10") (= "=") (cast_expression "(int *)ppiVar13[0x18][1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0x18][1]" (subscript_expression "ppiVar13[0x18]" (identifier "ppiVar13") ([ "[") (number_literal "0x18") (] "]")) ([ "[") (number_literal "1") (] "]")))) (; ";"))) (expression_statement "piVar11 = *(int **)(*apiStack_60[1] + 8);" (assignment_expression "piVar11 = *(int **)(*apiStack_60[1] + 8)" (identifier "piVar11") (= "=") (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 "ppiVar13[1] = piVar10;" (assignment_expression "ppiVar13[1] = piVar10" (subscript_expression "ppiVar13[1]" (identifier "ppiVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "bVar8 = *(byte *)(piVar10 + 0x2b);" (assignment_expression "bVar8 = *(byte *)(piVar10 + 0x2b)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)(piVar10 + 0x2b)" (* "*") (cast_expression "(byte *)(piVar10 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar10 + 0x2b)" (( "(") (binary_expression "piVar10 + 0x2b" (identifier "piVar10") (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (expression_statement "uVar17 = (uint)bVar8;" (assignment_expression "uVar17 = (uint)bVar8" (identifier "uVar17") (= "=") (cast_expression "(uint)bVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar8"))) (; ";")) (if_statement "if (bVar8 != 0) {\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }" (if "if") (parenthesized_expression "(bVar8 != 0)" (( "(") (binary_expression "bVar8 != 0" (identifier "bVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (piVar11 == (int *)0x0) goto LAB_000aeb68;\n    goto LAB_000ae822;\n  }" ({ "{") (if_statement "if (piVar11 == (int *)0x0) goto LAB_000aeb68;" (if "if") (parenthesized_expression "(piVar11 == (int *)0x0)" (( "(") (binary_expression "piVar11 == (int *)0x0" (identifier "piVar11") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000aeb68;" (goto "goto") (statement_identifier "LAB_000aeb68") (; ";"))) (goto_statement "goto LAB_000ae822;" (goto "goto") (statement_identifier "LAB_000ae822") (; ";")) (} "}"))) (if_statement "if (piVar11 == (int *)0x0) {\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }" (if "if") (parenthesized_expression "(piVar11 == (int *)0x0)" (( "(") (binary_expression "piVar11 == (int *)0x0" (identifier "piVar11") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;\n    ppiVar13[0xfffffffe] = (int *)"options";\n    ppiVar13[0xfffffffd] = (int *)0x5c;\n    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";\n                    \n    ppiVar13[0xfffffffb] = (int *)0xaeb7e;\n    FUN_00069d00();\n  }" ({ "{") (labeled_statement "LAB_000aeb68:\n    ppiVar13[0xffffffff] = (int *)uVar17;" (statement_identifier "LAB_000aeb68") (: ":") (expression_statement "ppiVar13[0xffffffff] = (int *)uVar17;" (assignment_expression "ppiVar13[0xffffffff] = (int *)uVar17" (subscript_expression "ppiVar13[0xffffffff]" (identifier "ppiVar13") ([ "[") (number_literal "0xffffffff") (] "]")) (= "=") (cast_expression "(int *)uVar17" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar17"))) (; ";"))) (expression_statement "ppiVar13[0xfffffffe] = (int *)"options";" (assignment_expression "ppiVar13[0xfffffffe] = (int *)"options"" (subscript_expression "ppiVar13[0xfffffffe]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffe") (] "]")) (= "=") (cast_expression "(int *)"options"" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""options"" (" """) (string_content "options") (" """)))) (; ";")) (expression_statement "ppiVar13[0xfffffffd] = (int *)0x5c;" (assignment_expression "ppiVar13[0xfffffffd] = (int *)0x5c" (subscript_expression "ppiVar13[0xfffffffd]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffd") (] "]")) (= "=") (cast_expression "(int *)0x5c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5c"))) (; ";")) (expression_statement "ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";" (assignment_expression "ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h"" (subscript_expression "ppiVar13[0xfffffffc]" (identifier "ppiVar13") ([ "[") (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 "ppiVar13[0xfffffffb] = (int *)0xaeb7e;" (assignment_expression "ppiVar13[0xfffffffb] = (int *)0xaeb7e" (subscript_expression "ppiVar13[0xfffffffb]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffb") (] "]")) (= "=") (cast_expression "(int *)0xaeb7e" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaeb7e"))) (; ";")) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" (identifier "FUN_00069d00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" (identifier "bVar20") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';" (assignment_expression "bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0'" (identifier "bVar23") (= "=") (binary_expression "*(char *)((int)piVar11 + 0x318d) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x318d)" (* "*") (cast_expression "(char *)((int)piVar11 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x318d)" (( "(") (binary_expression "(int)piVar11 + 0x318d" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x318d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!bVar23) goto LAB_000aea50;" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (goto_statement "goto LAB_000aea50;" (goto "goto") (statement_identifier "LAB_000aea50") (; ";"))) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar15 = (byte *)".ctors.";" (assignment_expression "pbVar15 = (byte *)".ctors."" (identifier "pbVar15") (= "=") (cast_expression "(byte *)".ctors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors."" (" """) (string_content ".ctors.") (" """)))) (; ";")) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" (identifier "pbVar18") (= "=") (cast_expression "(byte *)ppiVar13[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0x1b]" (identifier "ppiVar13") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (do_statement "do {\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  } while (bVar23);" (do "do") (compound_statement "{\n    if (iVar9 == 0) break;\n    iVar9 = iVar9 + -1;\n    bVar20 = *pbVar15 < *pbVar18;\n    bVar23 = *pbVar15 == *pbVar18;\n    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n  }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar20 = *pbVar15 < *pbVar18;" (assignment_expression "bVar20 = *pbVar15 < *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar23 = *pbVar15 == *pbVar18;" (assignment_expression "bVar23 = *pbVar15 == *pbVar18" (identifier "bVar23") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" (identifier "bVar21") (= "=") (false "false")) (; ";")) (expression_statement "bVar20 = (!bVar20 && !bVar23) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar23) == bVar20" (identifier "bVar20") (= "=") (binary_expression "(!bVar20 && !bVar23) == bVar20" (parenthesized_expression "(!bVar20 && !bVar23)" (( "(") (binary_expression "!bVar20 && !bVar23" (unary_expression "!bVar20" (! "!") (identifier "bVar20")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar20"))) (; ";")) (if_statement "if (bVar20) {\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }\n  else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (compound_statement "{\nLAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n    uVar17 = (uint)bVar8;\n    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }\n    if (bVar8 != 0) goto LAB_000ae822;\nLAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\n    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;\n    if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }\n  }" ({ "{") (labeled_statement "LAB_000ae7d8:\n    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;" (statement_identifier "LAB_000ae7d8") (: ":") (expression_statement "*(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;" (assignment_expression "*(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8" (pointer_expression "*(byte *)(iVar6 + 0x91)" (* "*") (cast_expression "(byte *)(iVar6 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x91)" (( "(") (binary_expression "iVar6 + 0x91" (identifier "iVar6") (+ "+") (number_literal "0x91")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar6 + 0x91) | 8" (pointer_expression "*(byte *)(iVar6 + 0x91)" (* "*") (cast_expression "(byte *)(iVar6 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x91)" (( "(") (binary_expression "iVar6 + 0x91" (identifier "iVar6") (+ "+") (number_literal "0x91")) () ")")))) (| "|") (number_literal "8"))) (; ";"))) (expression_statement "bVar8 = *(byte *)(ppiVar13[1] + 0x2b);" (assignment_expression "bVar8 = *(byte *)(ppiVar13[1] + 0x2b)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)(ppiVar13[1] + 0x2b)" (* "*") (cast_expression "(byte *)(ppiVar13[1] + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar13[1] + 0x2b)" (( "(") (binary_expression "ppiVar13[1] + 0x2b" (subscript_expression "ppiVar13[1]" (identifier "ppiVar13") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (expression_statement "uVar17 = (uint)bVar8;" (assignment_expression "uVar17 = (uint)bVar8" (identifier "uVar17") (= "=") (cast_expression "(uint)bVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar8"))) (; ";")) (if_statement "if (*(char *)((int)piVar11 + 0x3ced) == '\0') {\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }" (if "if") (parenthesized_expression "(*(char *)((int)piVar11 + 0x3ced) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar11 + 0x3ced) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x3ced)" (* "*") (cast_expression "(char *)((int)piVar11 + 0x3ced)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x3ced)" (( "(") (binary_expression "(int)piVar11 + 0x3ced" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x3ced")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;\n      goto LAB_000aea5d;\n    }" ({ "{") (labeled_statement "LAB_000aeb99:\n      if (bVar8 != 0) goto LAB_000ae822;" (statement_identifier "LAB_000aeb99") (: ":") (if_statement "if (bVar8 != 0) goto LAB_000ae822;" (if "if") (parenthesized_expression "(bVar8 != 0)" (( "(") (binary_expression "bVar8 != 0" (identifier "bVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ae822;" (goto "goto") (statement_identifier "LAB_000ae822") (; ";")))) (goto_statement "goto LAB_000aea5d;" (goto "goto") (statement_identifier "LAB_000aea5d") (; ";")) (} "}"))) (if_statement "if (bVar8 != 0) goto LAB_000ae822;" (if "if") (parenthesized_expression "(bVar8 != 0)" (( "(") (binary_expression "bVar8 != 0" (identifier "bVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ae822;" (goto "goto") (statement_identifier "LAB_000ae822") (; ";"))) (labeled_statement "LAB_000ae7fd:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);" (statement_identifier "LAB_000ae7fd") (: ":") (expression_statement "cVar4 = *(char *)((int)piVar11 + 0x318d);" (assignment_expression "cVar4 = *(char *)((int)piVar11 + 0x318d)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)((int)piVar11 + 0x318d)" (* "*") (cast_expression "(char *)((int)piVar11 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x318d)" (( "(") (binary_expression "(int)piVar11 + 0x318d" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x318d")) () ")"))))) (; ";"))) (if_statement "if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;" (if "if") (parenthesized_expression "(*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0')" (( "(") (binary_expression "*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0'" (pointer_expression "*(char *)((int)ppiVar13[0x18] + 0x1cd)" (* "*") (cast_expression "(char *)((int)ppiVar13[0x18] + 0x1cd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13[0x18] + 0x1cd)" (( "(") (binary_expression "(int)ppiVar13[0x18] + 0x1cd" (cast_expression "(int)ppiVar13[0x18]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppiVar13[0x18]" (identifier "ppiVar13") ([ "[") (number_literal "0x18") (] "]"))) (+ "+") (number_literal "0x1cd")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000aea64;" (goto "goto") (statement_identifier "LAB_000aea64") (; ";"))) (if_statement "if (cVar4 == '\0') {\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      ppiVar13[3] = piVar11;\n      ppuVar16 = &PTR_s__text_unlikely_003837a0;\n      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;\n      pcVar19 = ".text.unlikely";\n      sVar7 = 0xe;\n      while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }\n      piVar11 = ppiVar13[3];\n      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;\n      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);\n      uVar17 = (uint)bVar8;\n      goto LAB_000aeb99;\n    }" ({ "{") (expression_statement "ppiVar13[3] = piVar11;" (assignment_expression "ppiVar13[3] = piVar11" (subscript_expression "ppiVar13[3]" (identifier "ppiVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "piVar11")) (; ";")) (expression_statement "ppuVar16 = &PTR_s__text_unlikely_003837a0;" (assignment_expression "ppuVar16 = &PTR_s__text_unlikely_003837a0" (identifier "ppuVar16") (= "=") (pointer_expression "&PTR_s__text_unlikely_003837a0" (& "&") (identifier "PTR_s__text_unlikely_003837a0"))) (; ";")) (expression_statement "ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;" (assignment_expression "ppiVar13[2] = (int *)&PTR_s_aranges_003837b0" (subscript_expression "ppiVar13[2]" (identifier "ppiVar13") ([ "[") (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 "pcVar19 = ".text.unlikely";" (assignment_expression "pcVar19 = ".text.unlikely"" (identifier "pcVar19") (= "=") (string_literal "".text.unlikely"" (" """) (string_content ".text.unlikely") (" """))) (; ";")) (expression_statement "sVar7 = 0xe;" (assignment_expression "sVar7 = 0xe" (identifier "sVar7") (= "=") (number_literal "0xe")) (; ";")) (while_statement "while( true ) {\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        ppiVar13[0xfffffffe] = (int *)sVar7;\n        ppiVar13[0xfffffffd] = ppiVar13[0x1b];\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebdd;\n        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);\n        if (iVar9 == 0) break;\n        ppuVar16 = ppuVar16 + 1;\n        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;\n        pcVar19 = *ppuVar16;\n        ppiVar13[0xfffffffc] = (int *)pcVar19;\n        ppiVar13[0xfffffffb] = (int *)0xaebfc;\n        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);\n      }" ({ "{") (expression_statement "ppiVar13[0xfffffffe] = (int *)sVar7;" (assignment_expression "ppiVar13[0xfffffffe] = (int *)sVar7" (subscript_expression "ppiVar13[0xfffffffe]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffe") (] "]")) (= "=") (cast_expression "(int *)sVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "sVar7"))) (; ";")) (expression_statement "ppiVar13[0xfffffffd] = ppiVar13[0x1b];" (assignment_expression "ppiVar13[0xfffffffd] = ppiVar13[0x1b]" (subscript_expression "ppiVar13[0xfffffffd]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffd") (] "]")) (= "=") (subscript_expression "ppiVar13[0x1b]" (identifier "ppiVar13") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (expression_statement "ppiVar13[0xfffffffc] = (int *)pcVar19;" (assignment_expression "ppiVar13[0xfffffffc] = (int *)pcVar19" (subscript_expression "ppiVar13[0xfffffffc]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffc") (] "]")) (= "=") (cast_expression "(int *)pcVar19" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar19"))) (; ";")) (expression_statement "ppiVar13[0xfffffffb] = (int *)0xaebdd;" (assignment_expression "ppiVar13[0xfffffffb] = (int *)0xaebdd" (subscript_expression "ppiVar13[0xfffffffb]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffb") (] "]")) (= "=") (cast_expression "(int *)0xaebdd" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaebdd"))) (; ";")) (expression_statement "iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe]);" (assignment_expression "iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe])" (identifier "iVar9") (= "=") (call_expression "strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe])" (identifier "strncmp") (argument_list "((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],\n                        (size_t)ppiVar13[0xfffffffe])" (( "(") (cast_expression "(char *)ppiVar13[0xfffffffc]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0xfffffffc]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffc") (] "]"))) (, ",") (cast_expression "(char *)ppiVar13[0xfffffffd]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0xfffffffd]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffd") (] "]"))) (, ",") (cast_expression "(size_t)ppiVar13[0xfffffffe]" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (subscript_expression "ppiVar13[0xfffffffe]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffe") (] "]"))) () ")")))) (; ";")) (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppuVar16 = ppuVar16 + 1;" (assignment_expression "ppuVar16 = ppuVar16 + 1" (identifier "ppuVar16") (= "=") (binary_expression "ppuVar16 + 1" (identifier "ppuVar16") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;" (if "if") (parenthesized_expression "((undefined **)ppiVar13[2] == ppuVar16)" (( "(") (binary_expression "(undefined **)ppiVar13[2] == ppuVar16" (cast_expression "(undefined **)ppiVar13[2]" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "ppiVar13[2]" (identifier "ppiVar13") ([ "[") (number_literal "2") (] "]"))) (== "==") (identifier "ppuVar16")) () ")")) (goto_statement "goto LAB_000aea6c;" (goto "goto") (statement_identifier "LAB_000aea6c") (; ";"))) (expression_statement "pcVar19 = *ppuVar16;" (assignment_expression "pcVar19 = *ppuVar16" (identifier "pcVar19") (= "=") (pointer_expression "*ppuVar16" (* "*") (identifier "ppuVar16"))) (; ";")) (expression_statement "ppiVar13[0xfffffffc] = (int *)pcVar19;" (assignment_expression "ppiVar13[0xfffffffc] = (int *)pcVar19" (subscript_expression "ppiVar13[0xfffffffc]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffc") (] "]")) (= "=") (cast_expression "(int *)pcVar19" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar19"))) (; ";")) (expression_statement "ppiVar13[0xfffffffb] = (int *)0xaebfc;" (assignment_expression "ppiVar13[0xfffffffb] = (int *)0xaebfc" (subscript_expression "ppiVar13[0xfffffffb]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffb") (] "]")) (= "=") (cast_expression "(int *)0xaebfc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaebfc"))) (; ";")) (expression_statement "sVar7 = strlen((char *)ppiVar13[0xfffffffc]);" (assignment_expression "sVar7 = strlen((char *)ppiVar13[0xfffffffc])" (identifier "sVar7") (= "=") (call_expression "strlen((char *)ppiVar13[0xfffffffc])" (identifier "strlen") (argument_list "((char *)ppiVar13[0xfffffffc])" (( "(") (cast_expression "(char *)ppiVar13[0xfffffffc]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0xfffffffc]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffc") (] "]"))) () ")")))) (; ";")) (} "}"))) (expression_statement "piVar11 = ppiVar13[3];" (assignment_expression "piVar11 = ppiVar13[3]" (identifier "piVar11") (= "=") (subscript_expression "ppiVar13[3]" (identifier "ppiVar13") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;" (assignment_expression "*(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8" (pointer_expression "*(byte *)(iVar6 + 0x91)" (* "*") (cast_expression "(byte *)(iVar6 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x91)" (( "(") (binary_expression "iVar6 + 0x91" (identifier "iVar6") (+ "+") (number_literal "0x91")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar6 + 0x91) | 8" (pointer_expression "*(byte *)(iVar6 + 0x91)" (* "*") (cast_expression "(byte *)(iVar6 + 0x91)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x91)" (( "(") (binary_expression "iVar6 + 0x91" (identifier "iVar6") (+ "+") (number_literal "0x91")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (expression_statement "bVar8 = *(byte *)(ppiVar13[1] + 0x2b);" (assignment_expression "bVar8 = *(byte *)(ppiVar13[1] + 0x2b)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)(ppiVar13[1] + 0x2b)" (* "*") (cast_expression "(byte *)(ppiVar13[1] + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar13[1] + 0x2b)" (( "(") (binary_expression "ppiVar13[1] + 0x2b" (subscript_expression "ppiVar13[1]" (identifier "ppiVar13") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x2b")) () ")"))))) (; ";")) (expression_statement "uVar17 = (uint)bVar8;" (assignment_expression "uVar17 = (uint)bVar8" (identifier "uVar17") (= "=") (cast_expression "(uint)bVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar8"))) (; ";")) (goto_statement "goto LAB_000aeb99;" (goto "goto") (statement_identifier "LAB_000aeb99") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    iVar9 = 7;\n    pbVar15 = (byte *)".dtors.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar23 = false;\n    bVar20 = (!bVar21 && !bVar20) == bVar21;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".init_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    bVar21 = false;\n    bVar20 = (!bVar23 && !bVar20) == bVar23;\n    if (bVar20) goto LAB_000ae7d8;\n    iVar9 = 0xc;\n    pbVar15 = (byte *)".fini_array.";\n    pbVar18 = (byte *)ppiVar13[0x1b];\n    do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);\n    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;\n    bVar20 = false;\n    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';\n    if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }\nLAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;\nLAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);\nLAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar15 = (byte *)".dtors.";" (assignment_expression "pbVar15 = (byte *)".dtors."" (identifier "pbVar15") (= "=") (cast_expression "(byte *)".dtors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors."" (" """) (string_content ".dtors.") (" """)))) (; ";")) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" (identifier "pbVar18") (= "=") (cast_expression "(byte *)ppiVar13[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0x1b]" (identifier "ppiVar13") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (do_statement "do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);" (do "do") (compound_statement "{\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" (identifier "bVar21") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "bVar20 = (!bVar21 && !bVar20) == bVar21;" (assignment_expression "bVar20 = (!bVar21 && !bVar20) == bVar21" (identifier "bVar20") (= "=") (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" (( "(") (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" (! "!") (identifier "bVar21")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (== "==") (identifier "bVar21"))) (; ";")) (if_statement "if (bVar20) goto LAB_000ae7d8;" (if "if") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (goto_statement "goto LAB_000ae7d8;" (goto "goto") (statement_identifier "LAB_000ae7d8") (; ";"))) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" (identifier "iVar9") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar15 = (byte *)".init_array.";" (assignment_expression "pbVar15 = (byte *)".init_array."" (identifier "pbVar15") (= "=") (cast_expression "(byte *)".init_array."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".init_array."" (" """) (string_content ".init_array.") (" """)))) (; ";")) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" (identifier "pbVar18") (= "=") (cast_expression "(byte *)ppiVar13[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0x1b]" (identifier "ppiVar13") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (do_statement "do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);" (do "do") (compound_statement "{\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar23 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar15 < *pbVar18;" (assignment_expression "bVar23 = *pbVar15 < *pbVar18" (identifier "bVar23") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" (identifier "bVar21") (= "=") (false "false")) (; ";")) (expression_statement "bVar20 = (!bVar23 && !bVar20) == bVar23;" (assignment_expression "bVar20 = (!bVar23 && !bVar20) == bVar23" (identifier "bVar20") (= "=") (binary_expression "(!bVar23 && !bVar20) == bVar23" (parenthesized_expression "(!bVar23 && !bVar20)" (( "(") (binary_expression "!bVar23 && !bVar20" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (if_statement "if (bVar20) goto LAB_000ae7d8;" (if "if") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (goto_statement "goto LAB_000ae7d8;" (goto "goto") (statement_identifier "LAB_000ae7d8") (; ";"))) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" (identifier "iVar9") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar15 = (byte *)".fini_array.";" (assignment_expression "pbVar15 = (byte *)".fini_array."" (identifier "pbVar15") (= "=") (cast_expression "(byte *)".fini_array."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".fini_array."" (" """) (string_content ".fini_array.") (" """)))) (; ";")) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" (identifier "pbVar18") (= "=") (cast_expression "(byte *)ppiVar13[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0x1b]" (identifier "ppiVar13") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (do_statement "do {\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    } while (bVar20);" (do "do") (compound_statement "{\n      if (iVar9 == 0) break;\n      iVar9 = iVar9 + -1;\n      bVar21 = *pbVar15 < *pbVar18;\n      bVar20 = *pbVar15 == *pbVar18;\n      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" (identifier "bVar21") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (if_statement "if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;" (if "if") (parenthesized_expression "((!bVar21 && !bVar20) == bVar21)" (( "(") (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" (( "(") (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" (! "!") (identifier "bVar21")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (== "==") (identifier "bVar21")) () ")")) (goto_statement "goto LAB_000ae7d8;" (goto "goto") (statement_identifier "LAB_000ae7d8") (; ";"))) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" (identifier "bVar20") (= "=") (false "false")) (; ";")) (expression_statement "bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';" (assignment_expression "bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0'" (identifier "bVar23") (= "=") (binary_expression "*(char *)((int)piVar11 + 0xad5) == '\0'" (pointer_expression "*(char *)((int)piVar11 + 0xad5)" (* "*") (cast_expression "(char *)((int)piVar11 + 0xad5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0xad5)" (( "(") (binary_expression "(int)piVar11 + 0xad5" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0xad5")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!bVar23) {\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }" (if "if") (parenthesized_expression "(!bVar23)" (( "(") (unary_expression "!bVar23" (! "!") (identifier "bVar23")) () ")")) (compound_statement "{\n      iVar9 = 7;\n      pbVar15 = (byte *)ppiVar13[0x1b];\n      pbVar18 = (byte *)".ctors";\n      do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);\n      bVar21 = false;\n      bVar20 = (!bVar20 && !bVar23) == bVar20;\n      if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }\n      goto LAB_000ae7d8;\n    }" ({ "{") (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar15 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar15 = (byte *)ppiVar13[0x1b]" (identifier "pbVar15") (= "=") (cast_expression "(byte *)ppiVar13[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0x1b]" (identifier "ppiVar13") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (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") (" """)))) (; ";")) (do_statement "do {\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      } while (bVar23);" (do "do") (compound_statement "{\n        if (iVar9 == 0) break;\n        iVar9 = iVar9 + -1;\n        bVar20 = *pbVar15 < *pbVar18;\n        bVar23 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar20 = *pbVar15 < *pbVar18;" (assignment_expression "bVar20 = *pbVar15 < *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar23 = *pbVar15 == *pbVar18;" (assignment_expression "bVar23 = *pbVar15 == *pbVar18" (identifier "bVar23") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" (identifier "bVar21") (= "=") (false "false")) (; ";")) (expression_statement "bVar20 = (!bVar20 && !bVar23) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar23) == bVar20" (identifier "bVar20") (= "=") (binary_expression "(!bVar20 && !bVar23) == bVar20" (parenthesized_expression "(!bVar20 && !bVar23)" (( "(") (binary_expression "!bVar20 && !bVar23" (unary_expression "!bVar20" (! "!") (identifier "bVar20")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar20"))) (; ";")) (if_statement "if (!bVar20) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }" (if "if") (parenthesized_expression "(!bVar20)" (( "(") (unary_expression "!bVar20" (! "!") (identifier "bVar20")) () ")")) (compound_statement "{\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".dtors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);\n        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;\n      }" ({ "{") (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar15 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar15 = (byte *)ppiVar13[0x1b]" (identifier "pbVar15") (= "=") (cast_expression "(byte *)ppiVar13[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0x1b]" (identifier "ppiVar13") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (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") (" """)))) (; ";")) (do_statement "do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar20);" (do "do") (compound_statement "{\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar21 = *pbVar15 < *pbVar18;\n          bVar20 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" (identifier "bVar21") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (if_statement "if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;" (if "if") (parenthesized_expression "((!bVar21 && !bVar20) != bVar21)" (( "(") (binary_expression "(!bVar21 && !bVar20) != bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" (( "(") (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" (! "!") (identifier "bVar21")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (!= "!=") (identifier "bVar21")) () ")")) (goto_statement "goto LAB_000aea50;" (goto "goto") (statement_identifier "LAB_000aea50") (; ";"))) (} "}"))) (goto_statement "goto LAB_000ae7d8;" (goto "goto") (statement_identifier "LAB_000ae7d8") (; ";")) (} "}"))) (labeled_statement "LAB_000aea50:\n    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;" (statement_identifier "LAB_000aea50") (: ":") (if_statement "if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;" (if "if") (parenthesized_expression "(*(char *)((int)piVar11 + 0x3ced) != '\0')" (( "(") (binary_expression "*(char *)((int)piVar11 + 0x3ced) != '\0'" (pointer_expression "*(char *)((int)piVar11 + 0x3ced)" (* "*") (cast_expression "(char *)((int)piVar11 + 0x3ced)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x3ced)" (( "(") (binary_expression "(int)piVar11 + 0x3ced" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x3ced")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000ae7fd;" (goto "goto") (statement_identifier "LAB_000ae7fd") (; ";")))) (labeled_statement "LAB_000aea5d:\n    cVar4 = *(char *)((int)piVar11 + 0x318d);" (statement_identifier "LAB_000aea5d") (: ":") (expression_statement "cVar4 = *(char *)((int)piVar11 + 0x318d);" (assignment_expression "cVar4 = *(char *)((int)piVar11 + 0x318d)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)((int)piVar11 + 0x318d)" (* "*") (cast_expression "(char *)((int)piVar11 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 0x318d)" (( "(") (binary_expression "(int)piVar11 + 0x318d" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "0x318d")) () ")"))))) (; ";"))) (labeled_statement "LAB_000aea64:\n    if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }" (statement_identifier "LAB_000aea64") (: ":") (if_statement "if (cVar4 == '\0') {\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);\n      bVar20 = uVar17 < 4;\n      bVar23 = uVar17 == 4;\n      if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }\n    }" ({ "{") (labeled_statement "LAB_000aea6c:\n      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);" (statement_identifier "LAB_000aea6c") (: ":") (expression_statement "uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);" (assignment_expression "uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14)" (identifier "uVar17") (= "=") (pointer_expression "*(uint *)(*ppiVar13[0x1c] + 0x14)" (* "*") (cast_expression "(uint *)(*ppiVar13[0x1c] + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*ppiVar13[0x1c] + 0x14)" (( "(") (binary_expression "*ppiVar13[0x1c] + 0x14" (pointer_expression "*ppiVar13[0x1c]" (* "*") (subscript_expression "ppiVar13[0x1c]" (identifier "ppiVar13") ([ "[") (number_literal "0x1c") (] "]"))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";"))) (expression_statement "bVar20 = uVar17 < 4;" (assignment_expression "bVar20 = uVar17 < 4" (identifier "bVar20") (= "=") (binary_expression "uVar17 < 4" (identifier "uVar17") (< "<") (number_literal "4"))) (; ";")) (expression_statement "bVar23 = uVar17 == 4;" (assignment_expression "bVar23 = uVar17 == 4" (identifier "bVar23") (= "=") (binary_expression "uVar17 == 4" (identifier "uVar17") (== "==") (number_literal "4"))) (; ";")) (if_statement "if (4 < uVar17) {\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }" (if "if") (parenthesized_expression "(4 < uVar17)" (( "(") (binary_expression "4 < uVar17" (number_literal "4") (< "<") (identifier "uVar17")) () ")")) (compound_statement "{\n        iVar9 = 7;\n        pbVar15 = (byte *)ppiVar13[0x1b];\n        pbVar18 = (byte *)".ctors";\n        do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);\n        bVar21 = false;\n        bVar20 = (!bVar20 && !bVar23) == bVar20;\n        if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }\n        ppiVar13[10] = ppiVar13[0x19];\n        ppiVar13[0xb] = ppiVar13[0x1a];\n        ppiVar13[9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffffd] = (int *)0x1;\n        ppiVar13[0xfffffffc] = (int *)0x0;\n        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);\n        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);\n        ppiVar13[0xfffffff9] = &DAT_0038f4c4;\n        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);\n        ppiVar13[0xfffffff7] = (int *)0xaeaff;\n        FUN_000ae400();\n        ppiVar12 = ppiVar13 + 0x17;\n        ppiVar13 = ppiVar13 + 0xffffffff;\n        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);\n        goto LAB_000ae822;\n      }" ({ "{") (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar15 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar15 = (byte *)ppiVar13[0x1b]" (identifier "pbVar15") (= "=") (cast_expression "(byte *)ppiVar13[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0x1b]" (identifier "ppiVar13") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (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") (" """)))) (; ";")) (do_statement "do {\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        } while (bVar23);" (do "do") (compound_statement "{\n          if (iVar9 == 0) break;\n          iVar9 = iVar9 + -1;\n          bVar20 = *pbVar15 < *pbVar18;\n          bVar23 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar20 = *pbVar15 < *pbVar18;" (assignment_expression "bVar20 = *pbVar15 < *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar23 = *pbVar15 == *pbVar18;" (assignment_expression "bVar23 = *pbVar15 == *pbVar18" (identifier "bVar23") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar23)" (( "(") (identifier "bVar23") () ")")) (; ";")) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" (identifier "bVar21") (= "=") (false "false")) (; ";")) (expression_statement "bVar20 = (!bVar20 && !bVar23) == bVar20;" (assignment_expression "bVar20 = (!bVar20 && !bVar23) == bVar20" (identifier "bVar20") (= "=") (binary_expression "(!bVar20 && !bVar23) == bVar20" (parenthesized_expression "(!bVar20 && !bVar23)" (( "(") (binary_expression "!bVar20 && !bVar23" (unary_expression "!bVar20" (! "!") (identifier "bVar20")) (&& "&&") (unary_expression "!bVar23" (! "!") (identifier "bVar23"))) () ")")) (== "==") (identifier "bVar20"))) (; ";")) (if_statement "if (bVar20) {\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }\n        else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }" (if "if") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (compound_statement "{\nLAB_000aeab0:\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".init_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) goto LAB_000aeb18;\n        }" ({ "{") (labeled_statement "LAB_000aeab0:\n          bVar23 = false;" (statement_identifier "LAB_000aeab0") (: ":") (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";"))) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" (identifier "iVar9") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar15 = *(byte **)(iVar6 + 0x20);" (assignment_expression "pbVar15 = *(byte **)(iVar6 + 0x20)" (identifier "pbVar15") (= "=") (pointer_expression "*(byte **)(iVar6 + 0x20)" (* "*") (cast_expression "(byte **)(iVar6 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (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") (" """)))) (; ";")) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);" (do "do") (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar15 < *pbVar18;" (assignment_expression "bVar23 = *pbVar15 < *pbVar18" (identifier "bVar23") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (expression_statement "bVar20 = (!bVar23 && !bVar20) == bVar23;" (assignment_expression "bVar20 = (!bVar23 && !bVar20) == bVar23" (identifier "bVar20") (= "=") (binary_expression "(!bVar23 && !bVar20) == bVar23" (parenthesized_expression "(!bVar23 && !bVar20)" (( "(") (binary_expression "!bVar23 && !bVar20" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (if_statement "if (!bVar20) goto LAB_000aeb18;" (if "if") (parenthesized_expression "(!bVar20)" (( "(") (unary_expression "!bVar20" (! "!") (identifier "bVar20")) () ")")) (goto_statement "goto LAB_000aeb18;" (goto "goto") (statement_identifier "LAB_000aeb18") (; ";"))) (} "}")) (else_clause "else {\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }" (else "else") (compound_statement "{\n          iVar9 = 7;\n          pbVar15 = (byte *)".ctors.";\n          pbVar18 = (byte *)ppiVar13[0x1b];\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar20 = (!bVar21 && !bVar20) == bVar21;\n          if (bVar20) goto LAB_000aeab0;\nLAB_000aeb18:\n          bVar23 = false;\n          iVar9 = 7;\n          pbVar15 = (byte *)ppiVar13[0x1b];\n          pbVar18 = (byte *)".dtors";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          bVar21 = false;\n          bVar20 = (!bVar23 && !bVar20) == bVar23;\n          if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }\n          bVar23 = false;\n          iVar9 = 0xc;\n          pbVar15 = *(byte **)(iVar6 + 0x20);\n          pbVar18 = (byte *)".fini_array";\n          do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);\n          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;\n        }" ({ "{") (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar15 = (byte *)".ctors.";" (assignment_expression "pbVar15 = (byte *)".ctors."" (identifier "pbVar15") (= "=") (cast_expression "(byte *)".ctors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".ctors."" (" """) (string_content ".ctors.") (" """)))) (; ";")) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" (identifier "pbVar18") (= "=") (cast_expression "(byte *)ppiVar13[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0x1b]" (identifier "ppiVar13") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);" (do "do") (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar21 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" (identifier "bVar21") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (expression_statement "bVar20 = (!bVar21 && !bVar20) == bVar21;" (assignment_expression "bVar20 = (!bVar21 && !bVar20) == bVar21" (identifier "bVar20") (= "=") (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" (( "(") (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" (! "!") (identifier "bVar21")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (== "==") (identifier "bVar21"))) (; ";")) (if_statement "if (bVar20) goto LAB_000aeab0;" (if "if") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (goto_statement "goto LAB_000aeab0;" (goto "goto") (statement_identifier "LAB_000aeab0") (; ";"))) (labeled_statement "LAB_000aeb18:\n          bVar23 = false;" (statement_identifier "LAB_000aeb18") (: ":") (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";"))) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar15 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar15 = (byte *)ppiVar13[0x1b]" (identifier "pbVar15") (= "=") (cast_expression "(byte *)ppiVar13[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0x1b]" (identifier "ppiVar13") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (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") (" """)))) (; ";")) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);" (do "do") (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar15 < *pbVar18;" (assignment_expression "bVar23 = *pbVar15 < *pbVar18" (identifier "bVar23") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" (identifier "bVar21") (= "=") (false "false")) (; ";")) (expression_statement "bVar20 = (!bVar23 && !bVar20) == bVar23;" (assignment_expression "bVar20 = (!bVar23 && !bVar20) == bVar23" (identifier "bVar20") (= "=") (binary_expression "(!bVar23 && !bVar20) == bVar23" (parenthesized_expression "(!bVar23 && !bVar20)" (( "(") (binary_expression "!bVar23 && !bVar20" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (== "==") (identifier "bVar23"))) (; ";")) (if_statement "if (!bVar20) {\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }" (if "if") (parenthesized_expression "(!bVar20)" (( "(") (unary_expression "!bVar20" (! "!") (identifier "bVar20")) () ")")) (compound_statement "{\n            iVar9 = 7;\n            pbVar15 = (byte *)".dtors.";\n            pbVar18 = (byte *)ppiVar13[0x1b];\n            do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);\n            bVar20 = (!bVar21 && !bVar20) == bVar21;\n            if (!bVar20) goto LAB_000ae820;\n          }" ({ "{") (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar15 = (byte *)".dtors.";" (assignment_expression "pbVar15 = (byte *)".dtors."" (identifier "pbVar15") (= "=") (cast_expression "(byte *)".dtors."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".dtors."" (" """) (string_content ".dtors.") (" """)))) (; ";")) (expression_statement "pbVar18 = (byte *)ppiVar13[0x1b];" (assignment_expression "pbVar18 = (byte *)ppiVar13[0x1b]" (identifier "pbVar18") (= "=") (cast_expression "(byte *)ppiVar13[0x1b]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppiVar13[0x1b]" (identifier "ppiVar13") ([ "[") (number_literal "0x1b") (] "]")))) (; ";")) (do_statement "do {\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            } while (bVar20);" (do "do") (compound_statement "{\n              if (iVar9 == 0) break;\n              iVar9 = iVar9 + -1;\n              bVar21 = *pbVar15 < *pbVar18;\n              bVar20 = *pbVar15 == *pbVar18;\n              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar21 = *pbVar15 < *pbVar18;" (assignment_expression "bVar21 = *pbVar15 < *pbVar18" (identifier "bVar21") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (expression_statement "bVar20 = (!bVar21 && !bVar20) == bVar21;" (assignment_expression "bVar20 = (!bVar21 && !bVar20) == bVar21" (identifier "bVar20") (= "=") (binary_expression "(!bVar21 && !bVar20) == bVar21" (parenthesized_expression "(!bVar21 && !bVar20)" (( "(") (binary_expression "!bVar21 && !bVar20" (unary_expression "!bVar21" (! "!") (identifier "bVar21")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (== "==") (identifier "bVar21"))) (; ";")) (if_statement "if (!bVar20) goto LAB_000ae820;" (if "if") (parenthesized_expression "(!bVar20)" (( "(") (unary_expression "!bVar20" (! "!") (identifier "bVar20")) () ")")) (goto_statement "goto LAB_000ae820;" (goto "goto") (statement_identifier "LAB_000ae820") (; ";"))) (} "}"))) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (expression_statement "iVar9 = 0xc;" (assignment_expression "iVar9 = 0xc" (identifier "iVar9") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pbVar15 = *(byte **)(iVar6 + 0x20);" (assignment_expression "pbVar15 = *(byte **)(iVar6 + 0x20)" (identifier "pbVar15") (= "=") (pointer_expression "*(byte **)(iVar6 + 0x20)" (* "*") (cast_expression "(byte **)(iVar6 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x20)" (( "(") (binary_expression "iVar6 + 0x20" (identifier "iVar6") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (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") (" """)))) (; ";")) (do_statement "do {\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          } while (bVar20);" (do "do") (compound_statement "{\n            if (iVar9 == 0) break;\n            iVar9 = iVar9 + -1;\n            bVar23 = *pbVar15 < *pbVar18;\n            bVar20 = *pbVar15 == *pbVar18;\n            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;\n            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar9 == 0) break;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar23 = *pbVar15 < *pbVar18;" (assignment_expression "bVar23 = *pbVar15 < *pbVar18" (identifier "bVar23") (= "=") (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (< "<") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "bVar20 = *pbVar15 == *pbVar18;" (assignment_expression "bVar20 = *pbVar15 == *pbVar18" (identifier "bVar20") (= "=") (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (== "==") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar25 * -2" (identifier "pbVar15") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar25 * -2" (identifier "pbVar18") (+ "+") (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar25")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar20)" (( "(") (identifier "bVar20") () ")")) (; ";")) (if_statement "if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;" (if "if") (parenthesized_expression "((!bVar23 && !bVar20) != bVar23)" (( "(") (binary_expression "(!bVar23 && !bVar20) != bVar23" (parenthesized_expression "(!bVar23 && !bVar20)" (( "(") (binary_expression "!bVar23 && !bVar20" (unary_expression "!bVar23" (! "!") (identifier "bVar23")) (&& "&&") (unary_expression "!bVar20" (! "!") (identifier "bVar20"))) () ")")) (!= "!=") (identifier "bVar23")) () ")")) (goto_statement "goto LAB_000ae820;" (goto "goto") (statement_identifier "LAB_000ae820") (; ";"))) (} "}")))) (expression_statement "ppiVar13[10] = ppiVar13[0x19];" (assignment_expression "ppiVar13[10] = ppiVar13[0x19]" (subscript_expression "ppiVar13[10]" (identifier "ppiVar13") ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "ppiVar13[0x19]" (identifier "ppiVar13") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "ppiVar13[0xb] = ppiVar13[0x1a];" (assignment_expression "ppiVar13[0xb] = ppiVar13[0x1a]" (subscript_expression "ppiVar13[0xb]" (identifier "ppiVar13") ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "ppiVar13[0x1a]" (identifier "ppiVar13") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "ppiVar13[9] = &DAT_0038f4c4;" (assignment_expression "ppiVar13[9] = &DAT_0038f4c4" (subscript_expression "ppiVar13[9]" (identifier "ppiVar13") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "&DAT_0038f4c4" (& "&") (identifier "DAT_0038f4c4"))) (; ";")) (expression_statement "ppiVar13[0xfffffffd] = (int *)0x1;" (assignment_expression "ppiVar13[0xfffffffd] = (int *)0x1" (subscript_expression "ppiVar13[0xfffffffd]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffd") (] "]")) (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppiVar13[0xfffffffc] = (int *)0x0;" (assignment_expression "ppiVar13[0xfffffffc] = (int *)0x0" (subscript_expression "ppiVar13[0xfffffffc]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffc") (] "]")) (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);" (assignment_expression "ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9)" (subscript_expression "ppiVar13[0xfffffffb]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffb") (] "]")) (= "=") (cast_expression "(int *)(ppiVar13 + 9)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar13 + 9)" (( "(") (binary_expression "ppiVar13 + 9" (identifier "ppiVar13") (+ "+") (number_literal "9")) () ")")))) (; ";")) (expression_statement "ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);" (assignment_expression "ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10)" (subscript_expression "ppiVar13[0xfffffffa]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffffa") (] "]")) (= "=") (cast_expression "(int *)(ppiVar13 + 10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar13 + 10)" (( "(") (binary_expression "ppiVar13 + 10" (identifier "ppiVar13") (+ "+") (number_literal "10")) () ")")))) (; ";")) (expression_statement "ppiVar13[0xfffffff9] = &DAT_0038f4c4;" (assignment_expression "ppiVar13[0xfffffff9] = &DAT_0038f4c4" (subscript_expression "ppiVar13[0xfffffff9]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffff9") (] "]")) (= "=") (pointer_expression "&DAT_0038f4c4" (& "&") (identifier "DAT_0038f4c4"))) (; ";")) (expression_statement "ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);" (assignment_expression "ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4)" (subscript_expression "ppiVar13[0xfffffff8]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffff8") (] "]")) (= "=") (cast_expression "(int *)(ppiVar13 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppiVar13 + 4)" (( "(") (binary_expression "ppiVar13 + 4" (identifier "ppiVar13") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "ppiVar13[0xfffffff7] = (int *)0xaeaff;" (assignment_expression "ppiVar13[0xfffffff7] = (int *)0xaeaff" (subscript_expression "ppiVar13[0xfffffff7]" (identifier "ppiVar13") ([ "[") (number_literal "0xfffffff7") (] "]")) (= "=") (cast_expression "(int *)0xaeaff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaeaff"))) (; ";")) (expression_statement "FUN_000ae400();" (call_expression "FUN_000ae400()" (identifier "FUN_000ae400") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppiVar12 = ppiVar13 + 0x17;" (assignment_expression "ppiVar12 = ppiVar13 + 0x17" (identifier "ppiVar12") (= "=") (binary_expression "ppiVar13 + 0x17" (identifier "ppiVar13") (+ "+") (number_literal "0x17"))) (; ";")) (expression_statement "ppiVar13 = ppiVar13 + 0xffffffff;" (assignment_expression "ppiVar13 = ppiVar13 + 0xffffffff" (identifier "ppiVar13") (= "=") (binary_expression "ppiVar13 + 0xffffffff" (identifier "ppiVar13") (+ "+") (number_literal "0xffffffff"))) (; ";")) (expression_statement "uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);" (assignment_expression "uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac)" (identifier "uVar17") (= "=") (binary_expression "(uint)*(byte *)((*ppiVar12)[1] + 0xac)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((*ppiVar12)[1] + 0xac)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((*ppiVar12)[1] + 0xac)" (( "(") (binary_expression "(*ppiVar12)[1] + 0xac" (subscript_expression "(*ppiVar12)[1]" (parenthesized_expression "(*ppiVar12)" (( "(") (pointer_expression "*ppiVar12" (* "*") (identifier "ppiVar12")) () ")")) ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xac")) () ")"))))) (; ";")) (goto_statement "goto LAB_000ae822;" (goto "goto") (statement_identifier "LAB_000ae822") (; ";")) (} "}"))) (} "}")))) (} "}")))) (labeled_statement "LAB_000ae820:\n  uVar17 = 0;" (statement_identifier "LAB_000ae820") (: ":") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_000ae822:\n  uVar1 = *(uint *)(iVar6 + 0x54);" (statement_identifier "LAB_000ae822") (: ":") (expression_statement "uVar1 = *(uint *)(iVar6 + 0x54);" (assignment_expression "uVar1 = *(uint *)(iVar6 + 0x54)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(iVar6 + 0x54)" (* "*") (cast_expression "(uint *)(iVar6 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x54)" (( "(") (binary_expression "iVar6 + 0x54" (identifier "iVar6") (+ "+") (number_literal "0x54")) () ")"))))) (; ";"))) (expression_statement "*(uint *)((int)ppiVar13 + -4) = uVar17;" (assignment_expression "*(uint *)((int)ppiVar13 + -4) = uVar17" (pointer_expression "*(uint *)((int)ppiVar13 + -4)" (* "*") (cast_expression "(uint *)((int)ppiVar13 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -4)" (( "(") (binary_expression "(int)ppiVar13 + -4" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -8)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -8)" (( "(") (binary_expression "(int)ppiVar13 + -8" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x78)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x78)" (( "(") (binary_expression "(int)ppiVar13 + 0x78" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0xc)" (( "(") (binary_expression "(int)ppiVar13 + -0xc" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x70)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x70)" (( "(") (binary_expression "(int)ppiVar13 + 0x70" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x10)" (( "(") (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x6c)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + 0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x6c)" (( "(") (binary_expression "(int)ppiVar13 + 0x6c" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x14)" (( "(") (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x68)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x68)" (( "(") (binary_expression "(int)ppiVar13 + 0x68" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x18)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x18)" (( "(") (binary_expression "(int)ppiVar13 + -0x18" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar13 + 100)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 100)" (( "(") (binary_expression "(int)ppiVar13 + 100" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "100")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x1c)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x1c)" (( "(") (binary_expression "(int)ppiVar13 + -0x1c" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x60)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x60)" (( "(") (binary_expression "(int)ppiVar13 + 0x60" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "*(int *)((int)ppiVar13 + -0x20) = iVar6;" (assignment_expression "*(int *)((int)ppiVar13 + -0x20) = iVar6" (pointer_expression "*(int *)((int)ppiVar13 + -0x20)" (* "*") (cast_expression "(int *)((int)ppiVar13 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x20)" (( "(") (binary_expression "(int)ppiVar13 + -0x20" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x24)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x24)" (( "(") (binary_expression "(int)ppiVar13 + -0x24" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0xae844")) (; ";")) (expression_statement "uVar26 = FUN_00125670();" (assignment_expression "uVar26 = FUN_00125670()" (identifier "uVar26") (= "=") (call_expression "FUN_00125670()" (identifier "FUN_00125670") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "**(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;" (assignment_expression "**(undefined8 **)((int)ppiVar13 + 0x80) = uVar26" (pointer_expression "**(undefined8 **)((int)ppiVar13 + 0x80)" (* "*") (pointer_expression "*(undefined8 **)((int)ppiVar13 + 0x80)" (* "*") (cast_expression "(undefined8 **)((int)ppiVar13 + 0x80)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x80)" (( "(") (binary_expression "(int)ppiVar13 + 0x80" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x80")) () ")"))))) (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }" (if "if") (parenthesized_expression "(((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0))" (( "(") (binary_expression "((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 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 *)(iVar6 + 0x54)) & 5) != 0)" (( "(") (binary_expression "((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0" (parenthesized_expression "((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5)" (( "(") (binary_expression "(uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5" (parenthesized_expression "(uVar1 ^ *(uint *)(iVar6 + 0x54))" (( "(") (binary_expression "uVar1 ^ *(uint *)(iVar6 + 0x54)" (identifier "uVar1") (^ "^") (pointer_expression "*(uint *)(iVar6 + 0x54)" (* "*") (cast_expression "(uint *)(iVar6 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x54)" (( "(") (binary_expression "iVar6 + 0x54" (identifier "iVar6") (+ "+") (number_literal "0x54")) () ")"))))) () ")")) (& "&") (number_literal "5")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    *(undefined4 *)((int)ppiVar13 + -8) = 0;\n    *(int *)((int)ppiVar13 + -0xc) = iVar6;\n    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);\n    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;\n    uVar5 = FUN_00097200();\n    *(undefined4 *)(iVar6 + 0x5c) = uVar5;\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)ppiVar13 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -8) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -8)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -8)" (( "(") (binary_expression "(int)ppiVar13 + -8" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)((int)ppiVar13 + -0xc) = iVar6;" (assignment_expression "*(int *)((int)ppiVar13 + -0xc) = iVar6" (pointer_expression "*(int *)((int)ppiVar13 + -0xc)" (* "*") (cast_expression "(int *)((int)ppiVar13 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0xc)" (( "(") (binary_expression "(int)ppiVar13 + -0xc" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x10)" (( "(") (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x60)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x60)" (( "(") (binary_expression "(int)ppiVar13 + 0x60" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x14)" (( "(") (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xae872")) (; ";")) (expression_statement "uVar5 = FUN_00097200();" (assignment_expression "uVar5 = FUN_00097200()" (identifier "uVar5") (= "=") (call_expression "FUN_00097200()" (identifier "FUN_00097200") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x5c) = uVar5;" (assignment_expression "*(undefined4 *)(iVar6 + 0x5c) = uVar5" (pointer_expression "*(undefined4 *)(iVar6 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x5c)" (( "(") (binary_expression "iVar6 + 0x5c" (identifier "iVar6") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;" (assignment_expression "*(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1" (pointer_expression "*(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4)" (* "*") (cast_expression "(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)ppiVar13 + 0x60) + 0x1c4)" (( "(") (binary_expression "*(int *)((int)ppiVar13 + 0x60) + 0x1c4" (pointer_expression "*(int *)((int)ppiVar13 + 0x60)" (* "*") (cast_expression "(int *)((int)ppiVar13 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x60)" (( "(") (binary_expression "(int)ppiVar13 + 0x60" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x60")) () ")")))) (+ "+") (number_literal "0x1c4")) () ")")))) (= "=") (number_literal "1")) (; ";")) (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}")))

/* 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, false>
   DWARF original prototype: Output_section * layout<32,_false>(Layout * this,
   Sized_relobj_file<32,_false> * object, uint shndx, char * name, Shdr<32,_false> * shdr, uint
   sh_type, uint reloc_shndx, uint param_9, off_t * off) */

type_2 * __thiscall
gold::type_12::layout<32,var_2>
          (type_12 *this,var_39<32,var_2> *object,type_9 shndx,var_10 *name,
          var_40<32,var_2> *shdr,type_9 sh_type,type_9 reloc_shndx,type_9 param_7,type_11 *off)

{
  int var_21;
  type_1 *puVar2;
  type_1 uVar3;
  type_1 uVar4;
  bool var_29;
  char var_37;
  char *pcVar7;
  type_2 *var_20;
  type_3 *var_3;
  type_4 OVar10;
  size_t sVar11;
  type_5 var_24;
  int var_5;
  type_6 **ppPVar14;
  type_3 *var_25;
  type_6 ***pppPVar16;
  type_6 ***pppPVar17;
  type_5 *var_27;
  type_7 *var_6;
  type_8 *puVar20;
  type_9 var_4;
  type_5 *var_28;
  type_10 _Var23;
  bool var_35;
  type_8 uVar25;
  bool var_36;
  type_8 uVar27;
  type_5 bVar28;
  type_11 oVar29;
  type_12 *unaff_retaddr;
  type_6 **local_5c;
  type_6 **local_58;
  type_10 __node_gen;
  type_13 name_key;
  type_7 var_7 [28];
  type_1 uStack_14;
  
  bVar28 = 0;
  uStack_14 = 0xae579;
  *(type_1 *)off = 0;
  *(type_1 *)((int)off + 4) = 0;
  var_29 = var_1<32,var_2>(this,object,name,shdr);
  pppPVar16 = &local_5c;
  if (!var_29) {
    return (type_2 *)0x0;
  }
  var_3 = parameters->options_;
  pppPVar17 = &local_5c;
  if (var_3 == (type_3 *)0x0) goto LAB_000aeb68;
  if (((var_3->relocatable_).value == false) ||
     (var_4 = shdr->p_->sh_flags, (var_4 & 0x200) == 0)) {
    ppPVar14 = &parameters;
    if ((var_3->text_unlikely_segment_).value != false) {
      uVar25 = &local_5c < (type_8 *)0x4;
      uVar27 = &stack0x00000000 == (type_8 *)0x60;
      local_58 = &parameters;
      (*(object->super_Sized_relobj<32,var_2>).super_Relobj.super_Object._vptr_Object[0x10])
                (&name_key,object,shndx);
      var_5 = 0xe;
      local_58 = (type_6 **)0x28a53f;
      var_6 = (type_7 *)".text.unlikely";
      _Var23 = __node_gen;
      do {
        if (var_5 == 0) break;
        var_5 = var_5 + -1;
        uVar25 = (type_5)*var_6 < (type_5)*_Var23._M_h;
        uVar27 = *var_6 == *_Var23._M_h;
        var_6 = var_6 + (type_9)bVar28 * -2 + 1;
        _Var23._M_h = _Var23._M_h + (type_9)bVar28 * -2 + 1;
      } while ((bool)uVar27);
      pppPVar16 = (type_6 ***)&stack0xffffffa0;
      if ((!(bool)uVar25 && !(bool)uVar27) == (bool)uVar25) {
        if (__node_gen._M_h != var_7) {
          var_8(__node_gen._M_h);
        }
        pppPVar16 = (type_6 ***)&stack0xffffffa0;
        if ((*local_5c)->options_ == (type_3 *)0x0) goto LAB_000aec2b;
        var_4 = *(type_9 *)(*(int *)name + 8) & 0xfffff50f;
        if (((*local_5c)->options_->relocatable_).value != false) {
          var_4 = *(type_9 *)(*(int *)name + 8) & 0xfffff58f;
        }
        pcVar7 = var_9<var_10>::var_11
                           (&unaff_retaddr->namepool_,(char *)local_58,true,&name_key);
        var_20 = var_12(unaff_retaddr,pcVar7,(type_13)__node_gen._M_h,(type_14)shdr,
                                    (type_15)var_4,ORDER_INVALID,false);
        pppPVar16 = (type_6 ***)&stack0xffffffa0;
        var_20->field_0x92 = var_20->field_0x92 | 0x80;
        goto LAB_000ae6f0;
      }
      ppPVar14 = local_5c;
      if (__node_gen._M_h != var_7) {
        var_8(__node_gen._M_h);
        pppPVar16 = (type_6 ***)&stack0xffffffa0;
        ppPVar14 = local_5c;
      }
    }
    *(type_6 ***)((int)pppPVar16 + 4) = ppPVar14;
    *(type_1 *)((int)pppPVar16 + 0x28) = *(type_1 *)((int)pppPVar16 + 100);
    *(type_1 *)((int)pppPVar16 + 0x2c) = *(type_1 *)((int)pppPVar16 + 0x68);
    *(type_13 **)((int)pppPVar16 + -8) = &name_key;
    *(int *)((int)pppPVar16 + -0xc) = *(int *)((int)pppPVar16 + 0x60) + 0x204;
    *(type_8 **)((int)pppPVar16 + -0x10) = (type_8 *)((int)pppPVar16 + 0x1c);
    *(type_1 *)((int)pppPVar16 + -0x14) = 0xae625;
    std::
    _Rb_tree<std::var_16<var_17::type_16*,var_18>,_std::var_16<const_std::var_16<var_17::type_16*,var_18>,_gold::type_12::var_15*>,_std::_Select1st<std::var_16<const_std::var_16<var_17::type_16*,var_18>,_gold::type_12::var_15*>var_13>,_std::less<std::var_16<var_17::type_16*,var_18>var_13>,_std::allocator<std::var_16<const_std::var_16<var_17::type_16*,var_18>,_gold::type_12::var_15*>var_13>var_13>
    ::var_14(*(_Rb_tree<std::var_16<var_17::type_16*,var_18>,_std::var_16<const_std::var_16<var_17::type_16*,var_18>,_gold::type_12::var_15*>,_std::_Select1st<std::var_16<const_std::var_16<var_17::type_16*,var_18>,_gold::type_12::var_15*>var_13>,_std::less<std::var_16<var_17::type_16*,var_18>var_13>,_std::allocator<std::var_16<const_std::var_16<var_17::type_16*,var_18>,_gold::type_12::var_15*>var_13>var_13>
             **)((int)pppPVar16 + -0x10),
           *(var_16<var_17::type_16*,var_18> **)((int)pppPVar16 + -0xc));
    var_5 = *(int *)((int)pppPVar16 + 0x1c);
    if (var_5 == *(int *)((int)pppPVar16 + 0x60) + 0x208) {
      *(type_1 *)((int)pppPVar16 + -8) = 1;
      *(type_1 *)((int)pppPVar16 + -0xc) = 0;
      *(type_1 *)((int)pppPVar16 + -0x10) = 0;
      *(type_1 *)((int)pppPVar16 + -0x14) = 0;
      *(type_1 *)((int)pppPVar16 + -0x18) = 1;
      uVar3 = *(type_1 *)(**(int **)((int)pppPVar16 + 0x70) + 8);
      *(type_1 *)((int)pppPVar16 + -0x1c) = 0;
      *(type_1 *)((int)pppPVar16 + -0x20) = uVar3;
      *(type_1 *)((int)pppPVar16 + -0x24) = *(type_1 *)((int)pppPVar16 + 0x74);
      *(type_1 *)((int)pppPVar16 + -0x28) = *(type_1 *)((int)pppPVar16 + 0x6c);
      *(type_1 *)((int)pppPVar16 + -0x2c) = *(type_1 *)((int)pppPVar16 + 100);
      *(type_1 *)((int)pppPVar16 + -0x30) = *(type_1 *)((int)pppPVar16 + 0x60);
      *(type_1 *)((int)pppPVar16 + -0x34) = 0xae9ae;
      var_20 = var_19
                         (*(type_12 **)((int)pppPVar16 + -0x30),*(type_16 **)((int)pppPVar16 + -0x2c),
                          *(char **)((int)pppPVar16 + -0x28),*(type_14 *)((int)pppPVar16 + -0x24),
                          *(type_17 *)((int)pppPVar16 + -0x20),*(bool *)((int)pppPVar16 + -0x18),
                          *(type_4 *)((int)pppPVar16 + -0x14),
                          *(bool *)((int)pppPVar16 + -0x10),*(bool *)((int)pppPVar16 + -0xc),
                          *(bool *)((int)pppPVar16 + -8));
      local_5c = *(type_6 ***)((int)pppPVar16 + 4);
      if (var_20 == (type_2 *)0x0) {
        return (type_2 *)0x0;
      }
    }
    else {
      var_21 = *(int *)(**(int **)((int)pppPVar16 + 4) + 8);
      if (var_21 == 0) {
LAB_000aec2b:
                    /* WARNING: Subroutine does not return */
        pppPVar16[-1] = (type_6 **)layout<32,var_38>;
        Target::var_22((type_18 *)*pppPVar16);
      }
      var_4 = *(type_9 *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff50f;
      if (*(char *)(var_21 + 0x318d) != '\0') {
        var_4 = *(type_9 *)(**(int **)((int)pppPVar16 + 0x70) + 8) & 0xfffff58f;
      }
      puVar2 = *(type_1 **)(var_5 + 0x18);
      *(int **)((int)pppPVar16 + 4) = *(int **)((int)pppPVar16 + 4);
      *(type_13 **)((int)pppPVar16 + -4) = &name_key;
      *(type_1 *)((int)pppPVar16 + -8) = 1;
      *(type_1 *)((int)pppPVar16 + -0xc) = *puVar2;
      *(int *)((int)pppPVar16 + -0x10) = *(int *)((int)pppPVar16 + 0x60) + 8;
      *(type_1 *)((int)pppPVar16 + -0x14) = 0xae68b;
      pcVar7 = var_9<var_10>::var_11
                         (*(var_9<var_10> **)((int)pppPVar16 + -0x10),
                          *(char **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8),
                          *(type_13 **)((int)pppPVar16 + -4));
      *(type_1 *)((int)pppPVar16 + -4) = 0;
      *(type_1 *)((int)pppPVar16 + -8) = 0;
      *(type_1 *)((int)pppPVar16 + -0xc) = 0;
      *(type_9 *)((int)pppPVar16 + -0x10) = var_4;
      *(type_1 *)((int)pppPVar16 + -0x14) = *(type_1 *)((int)pppPVar16 + 0x74);
      *(type_1 *)((int)pppPVar16 + -0x18) = *(type_1 *)((int)pppPVar16 + 0x28);
      *(char **)((int)pppPVar16 + -0x1c) = pcVar7;
      *(type_1 *)((int)pppPVar16 + -0x20) = *(type_1 *)((int)pppPVar16 + 0x60);
      *(type_1 *)((int)pppPVar16 + -0x24) = 0xae6a9;
      var_20 = var_12(*(type_12 **)((int)pppPVar16 + -0x20),
                                  *(char **)((int)pppPVar16 + -0x1c),
                                  *(type_13 *)((int)pppPVar16 + -0x18),
                                  *(type_14 *)((int)pppPVar16 + -0x14),
                                  *(type_17 *)((int)pppPVar16 + -0x10),
                                  *(type_4 *)((int)pppPVar16 + -8),
                                  *(bool *)((int)pppPVar16 + -4));
      local_5c = *(type_6 ***)((int)pppPVar16 + 4);
      if (-1 < (char)var_20->field_0x92) {
        var_20->field_0x92 = var_20->field_0x92 | 0x80;
        var_5 = *(int *)(var_5 + 0x18);
        uVar3 = *(type_1 *)(var_5 + 8);
        *(type_1 *)&var_20->extra_segment_flags_ = *(type_1 *)(var_5 + 4);
        uVar4 = *(type_1 *)(var_5 + 0xc);
        *(type_1 *)((int)&var_20->extra_segment_flags_ + 4) = uVar3;
        uVar3 = *(type_1 *)(var_5 + 0x10);
        *(type_1 *)&var_20->segment_alignment_ = uVar4;
        *(type_1 *)((int)&var_20->segment_alignment_ + 4) = uVar3;
      }
    }
  }
  else {
    local_58 = &parameters;
    pcVar7 = var_9<var_10>::var_11(&this->namepool_,name,true,(type_13 *)0x0);
    var_20 = var_23(this,pcVar7,sh_type,(type_15)(var_4 & 0xfffff7ff),ORDER_INVALID,
                                 false);
    pppPVar16 = &local_5c;
    local_5c = local_58;
  }
LAB_000ae6f0:
  var_5 = *(int *)(*(int *)((int)pppPVar16 + 0x60) + 4);
  var_25 = (*local_5c)->options_;
  *(int *)((int)pppPVar16 + 4) = var_5;
  var_24 = *(type_5 *)(var_5 + 0xac);
  var_3 = (type_3 *)(type_9)var_24;
  pppPVar17 = pppPVar16;
  if (var_24 != 0) {
    if (var_25 == (type_3 *)0x0) goto LAB_000aeb68;
    goto LAB_000ae822;
  }
  if (var_25 == (type_3 *)0x0) {
LAB_000aeb68:
    *(type_3 **)((int)pppPVar17 + -4) = var_3;
    *(char **)((int)pppPVar17 + -8) = "options";
    *(type_1 *)((int)pppPVar17 + -0xc) = 0x5c;
    *(char **)((int)pppPVar17 + -0x10) = "../../gold/parameters.h";
                    /* WARNING: Subroutine does not return */
    *(type_19 **)((int)pppPVar17 + -0x14) = &UNK_000aeb7e;
    var_26(*(char **)((int)pppPVar17 + -0x10),*(int *)((int)pppPVar17 + -0xc),
                        *(char **)((int)pppPVar17 + -8));
  }
  var_29 = false;
  var_36 = (var_25->relocatable_).value == false;
  if (!var_36) goto LAB_000aea50;
  var_5 = 7;
  var_27 = (type_5 *)".ctors.";
  var_28 = *(type_5 **)((int)pppPVar16 + 0x6c);
  do {
    if (var_5 == 0) break;
    var_5 = var_5 + -1;
    var_29 = *var_27 < *var_28;
    var_36 = *var_27 == *var_28;
    var_27 = var_27 + (type_9)bVar28 * -2 + 1;
    var_28 = var_28 + (type_9)bVar28 * -2 + 1;
  } while (var_36);
  var_35 = false;
  var_29 = (!var_29 && !var_36) == var_29;
  if (var_29) {
LAB_000ae7d8:
    var_20->field_0x91 = var_20->field_0x91 | 8;
    var_24 = *(type_5 *)(*(int *)((int)pppPVar16 + 4) + 0xac);
    var_3 = (type_3 *)(type_9)var_24;
    if ((var_25->text_reorder_).value == false) {
LAB_000aeb99:
      if (var_24 != 0) goto LAB_000ae822;
      goto LAB_000aea5d;
    }
    if (var_24 != 0) goto LAB_000ae822;
LAB_000ae7fd:
    var_37 = (var_25->relocatable_).value;
    if (*(char *)(*(int *)((int)pppPVar16 + 0x60) + 0x1cd) != '\0') goto LAB_000aea64;
    if ((bool)var_37 == false) {
      *(type_3 **)((int)pppPVar16 + 0xc) = var_25;
      puVar20 = var_30(var_31*)::var_32;
      *(char ***)((int)pppPVar16 + 8) = gdb_fast_lookup_sections;
      pcVar7 = ".text.unlikely";
      sVar11 = 0xe;
      while( true ) {
        *(size_t *)((int)pppPVar16 + -8) = sVar11;
        *(type_1 *)((int)pppPVar16 + -0xc) = *(type_1 *)((int)pppPVar16 + 0x6c);
        *(char **)((int)pppPVar16 + -0x10) = pcVar7;
        *(type_1 *)((int)pppPVar16 + -0x14) = 0xaebdd;
        var_5 = var_33(*(char **)((int)pppPVar16 + -0x10),*(char **)((int)pppPVar16 + -0xc),
                         *(size_t *)((int)pppPVar16 + -8));
        if (var_5 == 0) break;
        puVar20 = (type_8 *)((int)puVar20 + 4);
        if (*(type_1 **)((int)pppPVar16 + 8) == (type_1 *)puVar20) goto LAB_000aea6c;
        pcVar7 = *(char **)puVar20;
        *(char **)((int)pppPVar16 + -0x10) = pcVar7;
        *(type_1 *)((int)pppPVar16 + -0x14) = 0xaebfc;
        sVar11 = var_34(*(char **)((int)pppPVar16 + -0x10));
      }
      var_25 = *(type_3 **)((int)pppPVar16 + 0xc);
      var_20->field_0x91 = var_20->field_0x91 | 8;
      var_24 = *(type_5 *)(*(int *)((int)pppPVar16 + 4) + 0xac);
      var_3 = (type_3 *)(type_9)var_24;
      goto LAB_000aeb99;
    }
  }
  else {
    var_5 = 7;
    var_27 = (type_5 *)".dtors.";
    var_28 = *(type_5 **)((int)pppPVar16 + 0x6c);
    do {
      if (var_5 == 0) break;
      var_5 = var_5 + -1;
      var_35 = *var_27 < *var_28;
      var_29 = *var_27 == *var_28;
      var_27 = var_27 + (type_9)bVar28 * -2 + 1;
      var_28 = var_28 + (type_9)bVar28 * -2 + 1;
    } while (var_29);
    var_36 = false;
    var_29 = (!var_35 && !var_29) == var_35;
    if (var_29) goto LAB_000ae7d8;
    var_5 = 0xc;
    var_27 = (type_5 *)".init_array.";
    var_28 = *(type_5 **)((int)pppPVar16 + 0x6c);
    do {
      if (var_5 == 0) break;
      var_5 = var_5 + -1;
      var_36 = *var_27 < *var_28;
      var_29 = *var_27 == *var_28;
      var_27 = var_27 + (type_9)bVar28 * -2 + 1;
      var_28 = var_28 + (type_9)bVar28 * -2 + 1;
    } while (var_29);
    var_35 = false;
    var_29 = (!var_36 && !var_29) == var_36;
    if (var_29) goto LAB_000ae7d8;
    var_5 = 0xc;
    var_27 = (type_5 *)".fini_array.";
    var_28 = *(type_5 **)((int)pppPVar16 + 0x6c);
    do {
      if (var_5 == 0) break;
      var_5 = var_5 + -1;
      var_35 = *var_27 < *var_28;
      var_29 = *var_27 == *var_28;
      var_27 = var_27 + (type_9)bVar28 * -2 + 1;
      var_28 = var_28 + (type_9)bVar28 * -2 + 1;
    } while (var_29);
    if ((!var_35 && !var_29) == var_35) goto LAB_000ae7d8;
    var_29 = false;
    var_36 = (var_25->ctors_in_init_array_).value == false;
    if (!var_36) {
      var_5 = 7;
      var_27 = *(type_5 **)((int)pppPVar16 + 0x6c);
      var_28 = (type_5 *)".ctors";
      do {
        if (var_5 == 0) break;
        var_5 = var_5 + -1;
        var_29 = *var_27 < *var_28;
        var_36 = *var_27 == *var_28;
        var_27 = var_27 + (type_9)bVar28 * -2 + 1;
        var_28 = var_28 + (type_9)bVar28 * -2 + 1;
      } while (var_36);
      var_35 = false;
      var_29 = (!var_29 && !var_36) == var_29;
      if (!var_29) {
        var_5 = 7;
        var_27 = *(type_5 **)((int)pppPVar16 + 0x6c);
        var_28 = (type_5 *)".dtors";
        do {
          if (var_5 == 0) break;
          var_5 = var_5 + -1;
          var_35 = *var_27 < *var_28;
          var_29 = *var_27 == *var_28;
          var_27 = var_27 + (type_9)bVar28 * -2 + 1;
          var_28 = var_28 + (type_9)bVar28 * -2 + 1;
        } while (var_29);
        if ((!var_35 && !var_29) != var_35) goto LAB_000aea50;
      }
      goto LAB_000ae7d8;
    }
LAB_000aea50:
    if ((var_25->text_reorder_).value != false) goto LAB_000ae7fd;
LAB_000aea5d:
    var_37 = (var_25->relocatable_).value;
LAB_000aea64:
    if (var_37 == '\0') {
LAB_000aea6c:
      var_4 = *(type_9 *)(**(int **)((int)pppPVar16 + 0x70) + 0x14);
      var_29 = var_4 < 4;
      var_36 = var_4 == 4;
      if (4 < var_4) {
        var_5 = 7;
        var_27 = *(type_5 **)((int)pppPVar16 + 0x6c);
        var_28 = (type_5 *)".ctors";
        do {
          if (var_5 == 0) break;
          var_5 = var_5 + -1;
          var_29 = *var_27 < *var_28;
          var_36 = *var_27 == *var_28;
          var_27 = var_27 + (type_9)bVar28 * -2 + 1;
          var_28 = var_28 + (type_9)bVar28 * -2 + 1;
        } while (var_36);
        var_35 = false;
        var_29 = (!var_29 && !var_36) == var_29;
        if (var_29) {
LAB_000aeab0:
          var_36 = false;
          var_5 = 0xc;
          var_27 = (type_5 *)var_20->name_;
          var_28 = (type_5 *)".init_array";
          do {
            if (var_5 == 0) break;
            var_5 = var_5 + -1;
            var_36 = *var_27 < *var_28;
            var_29 = *var_27 == *var_28;
            var_27 = var_27 + (type_9)bVar28 * -2 + 1;
            var_28 = var_28 + (type_9)bVar28 * -2 + 1;
          } while (var_29);
          var_29 = (!var_36 && !var_29) == var_36;
          if (!var_29) goto LAB_000aeb18;
        }
        else {
          var_5 = 7;
          var_27 = (type_5 *)".ctors.";
          var_28 = *(type_5 **)((int)pppPVar16 + 0x6c);
          do {
            if (var_5 == 0) break;
            var_5 = var_5 + -1;
            var_35 = *var_27 < *var_28;
            var_29 = *var_27 == *var_28;
            var_27 = var_27 + (type_9)bVar28 * -2 + 1;
            var_28 = var_28 + (type_9)bVar28 * -2 + 1;
          } while (var_29);
          var_29 = (!var_35 && !var_29) == var_35;
          if (var_29) goto LAB_000aeab0;
LAB_000aeb18:
          var_36 = false;
          var_5 = 7;
          var_27 = *(type_5 **)((int)pppPVar16 + 0x6c);
          var_28 = (type_5 *)".dtors";
          do {
            if (var_5 == 0) break;
            var_5 = var_5 + -1;
            var_36 = *var_27 < *var_28;
            var_29 = *var_27 == *var_28;
            var_27 = var_27 + (type_9)bVar28 * -2 + 1;
            var_28 = var_28 + (type_9)bVar28 * -2 + 1;
          } while (var_29);
          var_35 = false;
          var_29 = (!var_36 && !var_29) == var_36;
          if (!var_29) {
            var_5 = 7;
            var_27 = (type_5 *)".dtors.";
            var_28 = *(type_5 **)((int)pppPVar16 + 0x6c);
            do {
              if (var_5 == 0) break;
              var_5 = var_5 + -1;
              var_35 = *var_27 < *var_28;
              var_29 = *var_27 == *var_28;
              var_27 = var_27 + (type_9)bVar28 * -2 + 1;
              var_28 = var_28 + (type_9)bVar28 * -2 + 1;
            } while (var_29);
            var_29 = (!var_35 && !var_29) == var_35;
            if (!var_29) goto LAB_000ae820;
          }
          var_36 = false;
          var_5 = 0xc;
          var_27 = (type_5 *)var_20->name_;
          var_28 = (type_5 *)".fini_array";
          do {
            if (var_5 == 0) break;
            var_5 = var_5 + -1;
            var_36 = *var_27 < *var_28;
            var_29 = *var_27 == *var_28;
            var_27 = var_27 + (type_9)bVar28 * -2 + 1;
            var_28 = var_28 + (type_9)bVar28 * -2 + 1;
          } while (var_29);
          if ((!var_36 && !var_29) != var_36) goto LAB_000ae820;
        }
        *(type_1 *)((int)pppPVar16 + 0x28) = *(type_1 *)((int)pppPVar16 + 100);
        *(type_1 *)((int)pppPVar16 + 0x2c) = *(type_1 *)((int)pppPVar16 + 0x68);
        *(unordered_set<std::var_16<gold::type_16*,var_18>,_gold::Section_id_hash,_std::equal_to<std::var_16<gold::type_16*,var_18>var_13>,_std::allocator<std::var_16<gold::type_16*,var_18>var_13>var_13>
          **)((int)pppPVar16 + 0x24) = &ctors_sections_in_init_array;
        *(type_1 *)((int)pppPVar16 + -0xc) = 1;
        *(type_1 *)((int)pppPVar16 + -0x10) = 0;
        *(type_8 **)((int)pppPVar16 + -0x14) = (type_8 *)((int)pppPVar16 + 0x24);
        *(type_8 **)((int)pppPVar16 + -0x18) = (type_8 *)((int)pppPVar16 + 0x28);
        *(unordered_set<std::var_16<gold::type_16*,var_18>,_gold::Section_id_hash,_std::equal_to<std::var_16<gold::type_16*,var_18>var_13>,_std::allocator<std::var_16<gold::type_16*,var_18>var_13>var_13>
          **)((int)pppPVar16 + -0x1c) = &ctors_sections_in_init_array;
        *(type_8 **)((int)pppPVar16 + -0x20) = (type_8 *)((int)pppPVar16 + 0x10);
        *(type_1 *)((int)pppPVar16 + -0x24) = 0xaeaff;
        std::
        _Hashtable<std::var_16<gold::type_16*,var_18>,_std::var_16<gold::type_16*,var_18>,_std::allocator<std::var_16<gold::type_16*,var_18>var_13>,_std::__detail::_Identity,_std::equal_to<std::var_16<gold::type_16*,var_18>var_13>,_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_38,var_38>var_13>
        ::
        _M_insert<std::var_16<gold::type_16*,var_18>,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<std::var_16<gold::type_16*,var_18>,var_38>var_13>var_13>var_13>
                  ();
        var_3 = (type_3 *)
                 (type_9)*(type_5 *)(*(int *)(*(int *)((int)pppPVar16 + 0x60) + 4) + 0xac);
        goto LAB_000ae822;
      }
    }
  }
LAB_000ae820:
  var_3 = (type_3 *)0x0;
LAB_000ae822:
  var_4 = (type_9)var_20->flags_;
  *(type_3 **)((int)pppPVar16 + -4) = var_3;
  *(type_1 *)((int)pppPVar16 + -8) = *(type_1 *)((int)pppPVar16 + 0x78);
  *(type_1 *)((int)pppPVar16 + -0xc) = *(type_1 *)((int)pppPVar16 + 0x70);
  *(type_1 *)((int)pppPVar16 + -0x10) = *(type_1 *)((int)pppPVar16 + 0x6c);
  *(type_1 *)((int)pppPVar16 + -0x14) = *(type_1 *)((int)pppPVar16 + 0x68);
  *(type_1 *)((int)pppPVar16 + -0x18) = *(type_1 *)((int)pppPVar16 + 100);
  *(type_1 *)((int)pppPVar16 + -0x1c) = *(type_1 *)((int)pppPVar16 + 0x60);
  *(type_2 **)((int)pppPVar16 + -0x20) = var_20;
  *(type_1 *)((int)pppPVar16 + -0x24) = 0xae844;
  oVar29 = type_2::add_input_section<32,var_2>
                     (*(type_2 **)((int)pppPVar16 + -0x20),
                      *(type_12 **)((int)pppPVar16 + -0x1c),
                      *(var_39<32,var_2> **)((int)pppPVar16 + -0x18),
                      *(type_9 *)((int)pppPVar16 + -0x14),*(char **)((int)pppPVar16 + -0x10),
                      *(var_40<32,var_2> **)((int)pppPVar16 + -0xc),*(type_9 *)((int)pppPVar16 + -8),
                      *(bool *)((int)pppPVar16 + -4));
  **(type_11 **)((int)pppPVar16 + 0x80) = oVar29;
  if (((var_4 & 2) != 0) && (((var_4 ^ (type_9)var_20->flags_) & 5) != 0)) {
    *(type_1 *)((int)pppPVar16 + -8) = 0;
    *(type_2 **)((int)pppPVar16 + -0xc) = var_20;
    *(type_1 *)((int)pppPVar16 + -0x10) = *(type_1 *)((int)pppPVar16 + 0x60);
    *(type_1 *)((int)pppPVar16 + -0x14) = 0xae872;
    OVar10 = var_41
                       (*(type_12 **)((int)pppPVar16 + -0x10),
                        *(type_2 **)((int)pppPVar16 + -0xc),*(bool *)((int)pppPVar16 + -8));
    var_20->order_ = OVar10;
  }
  *(type_8 *)(*(int *)((int)pppPVar16 + 0x60) + 0x1c4) = 1;
  return var_20;
}


(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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (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) (identifier) (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)))) (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: (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: (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: (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: (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: (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))))) 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: (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))))) 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: (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: (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: (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: (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: (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;
  char cVar4;
  undefined4 uVar5;
  int iVar6;
  size_t sVar7;
  byte bVar8;
  int iVar9;
  int *piVar10;
  int *piVar11;
  int **ppiVar12;
  int **ppiVar13;
  int **ppiVar14;
  byte *pbVar15;
  undefined **ppuVar16;
  uint uVar17;
  byte *pbVar18;
  char *pcVar19;
  bool bVar20;
  bool bVar21;
  undefined1 uVar22;
  bool bVar23;
  undefined1 uVar24;
  byte bVar25;
  undefined8 uVar26;
  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;
  
  bVar25 = 0;
  uStack_14 = 0xae579;
  *param_9 = 0;
  param_9[1] = 0;
  apiStack_60[0] = param_5;
  cVar4 = FUN_000a7190(param_1,param_2,param_4);
  ppiVar13 = apiStack_60 + 1;
  ppiVar12 = apiStack_60 + 1;
  if (cVar4 == '\0') {
    return 0;
  }
  uVar17 = *(uint *)(DAT_0038f378 + 8);
  if (uVar17 == 0) goto LAB_000aeb68;
  if ((*(char *)(uVar17 + 0x318d) == '\0') ||
     (uVar1 = *(uint *)(*param_5 + 8), (uVar1 & 0x200) == 0)) {
    piVar10 = &DAT_0038f378;
    if (*(char *)(uVar17 + 0x5871) != '\0') {
      uVar22 = apiStack_60 + 1 < (int **)0x4;
      uVar24 = &stack0x00000000 == (undefined1 *)0x60;
      apiStack_60[2] = &DAT_0038f378;
      (**(code **)(*param_2 + 0x40))(local_34,param_2,param_3);
      iVar6 = 0xe;
      apiStack_60[2] = (int *)0x28a53f;
      pbVar15 = (byte *)".text.unlikely";
      pbVar18 = (byte *)local_40[2];
      do {
        if (iVar6 == 0) break;
        iVar6 = iVar6 + -1;
        uVar22 = *pbVar15 < *pbVar18;
        uVar24 = *pbVar15 == *pbVar18;
        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
      } while ((bool)uVar24);
      ppiVar12 = apiStack_60;
      if ((!(bool)uVar22 && !(bool)uVar24) == (bool)uVar22) {
        if ((byte *)local_40[2] != local_30) {
          FUN_001e6db0(local_40[2]);
        }
        ppiVar14 = apiStack_60;
        if (*(int *)(*apiStack_60[1] + 8) == 0) goto LAB_000aec2b;
        uVar17 = *(uint *)(*param_4 + 8) & 0xfffff50f;
        if (*(char *)(*(int *)(*apiStack_60[1] + 8) + 0x318d) != '\0') {
          uVar17 = *(uint *)(*param_4 + 8) & 0xfffff58f;
        }
        uVar5 = FUN_00174930(unaff_retaddr + 8,apiStack_60[2],1,local_34);
        iVar6 = FUN_0009fd60(unaff_retaddr,uVar5,local_40[2],param_5,uVar17,0,0,0);
        ppiVar13 = apiStack_60;
        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;
        goto LAB_000ae6f0;
      }
      piVar10 = apiStack_60[1];
      if ((byte *)local_40[2] != local_30) {
        FUN_001e6db0(local_40[2]);
        ppiVar12 = apiStack_60;
        piVar10 = apiStack_60[1];
      }
    }
    ppiVar12[1] = piVar10;
    ppiVar12[10] = ppiVar12[0x19];
    ppiVar12[0xb] = ppiVar12[0x1a];
    ppiVar12[-2] = (int *)local_34;
    ppiVar12[-3] = ppiVar12[0x18] + 0x81;
    ppiVar12[-4] = (int *)(ppiVar12 + 7);
    ppiVar12[-5] = (int *)0xae625;
    FUN_000a9000();
    piVar10 = ppiVar12[6];
    ppiVar14 = ppiVar12 + -1;
    if (piVar10 == ppiVar12[0x17] + 0x82) {
      ppiVar12[-3] = (int *)0x1;
      ppiVar12[-4] = (int *)0x0;
      ppiVar12[-5] = (int *)0x0;
      ppiVar12[-6] = (int *)0x0;
      ppiVar12[-7] = (int *)0x1;
      uVar5 = *(undefined4 *)(*ppiVar12[0x1b] + 8);
      ppiVar12[-8] = (int *)0x0;
      ppiVar12[-9] = (int *)uVar5;
      ppiVar12[-10] = ppiVar12[0x1c];
      ppiVar12[-0xb] = ppiVar12[0x1a];
      ppiVar12[-0xc] = ppiVar12[0x18];
      ppiVar12[-0xd] = ppiVar12[0x17];
      ppiVar12[-0xe] = (int *)0xae9ae;
      iVar6 = FUN_0009fff0();
      ppiVar13 = ppiVar12 + -1;
      apiStack_60[1] = *ppiVar12;
      if (iVar6 == 0) {
        return 0;
      }
    }
    else {
      iVar6 = *(int *)(**ppiVar12 + 8);
      if (iVar6 == 0) {
LAB_000aec2b:
                    /* WARNING: Subroutine does not return */
        *(code **)((int)ppiVar14 + -4) = FUN_000aec30;
        FUN_00096010();
      }
      uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff50f;
      if (*(char *)(iVar6 + 0x318d) != '\0') {
        uVar17 = *(uint *)(*ppiVar12[0x1b] + 8) & 0xfffff58f;
      }
      puVar2 = (undefined4 *)piVar10[6];
      *ppiVar12 = *ppiVar12;
      ppiVar12[-2] = (int *)local_34;
      ppiVar12[-3] = (int *)0x1;
      ppiVar12[-4] = (int *)*puVar2;
      ppiVar12[-5] = ppiVar12[0x17] + 2;
      ppiVar12[-6] = (int *)0xae68b;
      uVar5 = FUN_00174930();
      ppiVar12[-2] = (int *)0x0;
      ppiVar12[-3] = (int *)0x0;
      ppiVar12[-4] = (int *)0x0;
      ppiVar12[-5] = (int *)uVar17;
      ppiVar12[-6] = ppiVar12[0x1c];
      ppiVar12[-7] = ppiVar12[9];
      ppiVar12[-8] = (int *)uVar5;
      ppiVar12[-9] = ppiVar12[0x17];
      ppiVar12[-10] = (int *)0xae6a9;
      iVar6 = FUN_0009fd60();
      apiStack_60[1] = *ppiVar12;
      ppiVar13 = ppiVar12 + -1;
      if (-1 < (char)*(byte *)(iVar6 + 0x92)) {
        *(byte *)(iVar6 + 0x92) = *(byte *)(iVar6 + 0x92) | 0x80;
        iVar9 = piVar10[6];
        uVar5 = *(undefined4 *)(iVar9 + 8);
        *(undefined4 *)(iVar6 + 0x9c) = *(undefined4 *)(iVar9 + 4);
        uVar3 = *(undefined4 *)(iVar9 + 0xc);
        *(undefined4 *)(iVar6 + 0xa0) = uVar5;
        uVar5 = *(undefined4 *)(iVar9 + 0x10);
        *(undefined4 *)(iVar6 + 0xa4) = uVar3;
        *(undefined4 *)(iVar6 + 0xa8) = uVar5;
        ppiVar13 = ppiVar12 + -1;
      }
    }
  }
  else {
    apiStack_60[0] = (int *)0x0;
    apiStack_60[2] = &DAT_0038f378;
    uVar5 = FUN_00174930(param_1 + 8,param_4,1);
    iVar6 = FUN_0009b860(param_1,uVar5,param_6,uVar1 & 0xfffff7ff,0,0,0);
    ppiVar13 = apiStack_60 + 1;
    apiStack_60[1] = apiStack_60[2];
  }
LAB_000ae6f0:
  piVar10 = (int *)ppiVar13[0x18][1];
  piVar11 = *(int **)(*apiStack_60[1] + 8);
  ppiVar13[1] = piVar10;
  bVar8 = *(byte *)(piVar10 + 0x2b);
  uVar17 = (uint)bVar8;
  if (bVar8 != 0) {
    if (piVar11 == (int *)0x0) goto LAB_000aeb68;
    goto LAB_000ae822;
  }
  if (piVar11 == (int *)0x0) {
LAB_000aeb68:
    ppiVar13[0xffffffff] = (int *)uVar17;
    ppiVar13[0xfffffffe] = (int *)"options";
    ppiVar13[0xfffffffd] = (int *)0x5c;
    ppiVar13[0xfffffffc] = (int *)"../../gold/parameters.h";
                    /* WARNING: Subroutine does not return */
    ppiVar13[0xfffffffb] = (int *)0xaeb7e;
    FUN_00069d00();
  }
  bVar20 = false;
  bVar23 = *(char *)((int)piVar11 + 0x318d) == '\0';
  if (!bVar23) goto LAB_000aea50;
  iVar9 = 7;
  pbVar15 = (byte *)".ctors.";
  pbVar18 = (byte *)ppiVar13[0x1b];
  do {
    if (iVar9 == 0) break;
    iVar9 = iVar9 + -1;
    bVar20 = *pbVar15 < *pbVar18;
    bVar23 = *pbVar15 == *pbVar18;
    pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
    pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
  } while (bVar23);
  bVar21 = false;
  bVar20 = (!bVar20 && !bVar23) == bVar20;
  if (bVar20) {
LAB_000ae7d8:
    *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;
    bVar8 = *(byte *)(ppiVar13[1] + 0x2b);
    uVar17 = (uint)bVar8;
    if (*(char *)((int)piVar11 + 0x3ced) == '\0') {
LAB_000aeb99:
      if (bVar8 != 0) goto LAB_000ae822;
      goto LAB_000aea5d;
    }
    if (bVar8 != 0) goto LAB_000ae822;
LAB_000ae7fd:
    cVar4 = *(char *)((int)piVar11 + 0x318d);
    if (*(char *)((int)ppiVar13[0x18] + 0x1cd) != '\0') goto LAB_000aea64;
    if (cVar4 == '\0') {
      ppiVar13[3] = piVar11;
      ppuVar16 = &PTR_s__text_unlikely_003837a0;
      ppiVar13[2] = (int *)&PTR_s_aranges_003837b0;
      pcVar19 = ".text.unlikely";
      sVar7 = 0xe;
      while( true ) {
        ppiVar13[0xfffffffe] = (int *)sVar7;
        ppiVar13[0xfffffffd] = ppiVar13[0x1b];
        ppiVar13[0xfffffffc] = (int *)pcVar19;
        ppiVar13[0xfffffffb] = (int *)0xaebdd;
        iVar9 = strncmp((char *)ppiVar13[0xfffffffc],(char *)ppiVar13[0xfffffffd],
                        (size_t)ppiVar13[0xfffffffe]);
        if (iVar9 == 0) break;
        ppuVar16 = ppuVar16 + 1;
        if ((undefined **)ppiVar13[2] == ppuVar16) goto LAB_000aea6c;
        pcVar19 = *ppuVar16;
        ppiVar13[0xfffffffc] = (int *)pcVar19;
        ppiVar13[0xfffffffb] = (int *)0xaebfc;
        sVar7 = strlen((char *)ppiVar13[0xfffffffc]);
      }
      piVar11 = ppiVar13[3];
      *(byte *)(iVar6 + 0x91) = *(byte *)(iVar6 + 0x91) | 8;
      bVar8 = *(byte *)(ppiVar13[1] + 0x2b);
      uVar17 = (uint)bVar8;
      goto LAB_000aeb99;
    }
  }
  else {
    iVar9 = 7;
    pbVar15 = (byte *)".dtors.";
    pbVar18 = (byte *)ppiVar13[0x1b];
    do {
      if (iVar9 == 0) break;
      iVar9 = iVar9 + -1;
      bVar21 = *pbVar15 < *pbVar18;
      bVar20 = *pbVar15 == *pbVar18;
      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
    } while (bVar20);
    bVar23 = false;
    bVar20 = (!bVar21 && !bVar20) == bVar21;
    if (bVar20) goto LAB_000ae7d8;
    iVar9 = 0xc;
    pbVar15 = (byte *)".init_array.";
    pbVar18 = (byte *)ppiVar13[0x1b];
    do {
      if (iVar9 == 0) break;
      iVar9 = iVar9 + -1;
      bVar23 = *pbVar15 < *pbVar18;
      bVar20 = *pbVar15 == *pbVar18;
      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
    } while (bVar20);
    bVar21 = false;
    bVar20 = (!bVar23 && !bVar20) == bVar23;
    if (bVar20) goto LAB_000ae7d8;
    iVar9 = 0xc;
    pbVar15 = (byte *)".fini_array.";
    pbVar18 = (byte *)ppiVar13[0x1b];
    do {
      if (iVar9 == 0) break;
      iVar9 = iVar9 + -1;
      bVar21 = *pbVar15 < *pbVar18;
      bVar20 = *pbVar15 == *pbVar18;
      pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
      pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
    } while (bVar20);
    if ((!bVar21 && !bVar20) == bVar21) goto LAB_000ae7d8;
    bVar20 = false;
    bVar23 = *(char *)((int)piVar11 + 0xad5) == '\0';
    if (!bVar23) {
      iVar9 = 7;
      pbVar15 = (byte *)ppiVar13[0x1b];
      pbVar18 = (byte *)".ctors";
      do {
        if (iVar9 == 0) break;
        iVar9 = iVar9 + -1;
        bVar20 = *pbVar15 < *pbVar18;
        bVar23 = *pbVar15 == *pbVar18;
        pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
        pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
      } while (bVar23);
      bVar21 = false;
      bVar20 = (!bVar20 && !bVar23) == bVar20;
      if (!bVar20) {
        iVar9 = 7;
        pbVar15 = (byte *)ppiVar13[0x1b];
        pbVar18 = (byte *)".dtors";
        do {
          if (iVar9 == 0) break;
          iVar9 = iVar9 + -1;
          bVar21 = *pbVar15 < *pbVar18;
          bVar20 = *pbVar15 == *pbVar18;
          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
        } while (bVar20);
        if ((!bVar21 && !bVar20) != bVar21) goto LAB_000aea50;
      }
      goto LAB_000ae7d8;
    }
LAB_000aea50:
    if (*(char *)((int)piVar11 + 0x3ced) != '\0') goto LAB_000ae7fd;
LAB_000aea5d:
    cVar4 = *(char *)((int)piVar11 + 0x318d);
LAB_000aea64:
    if (cVar4 == '\0') {
LAB_000aea6c:
      uVar17 = *(uint *)(*ppiVar13[0x1c] + 0x14);
      bVar20 = uVar17 < 4;
      bVar23 = uVar17 == 4;
      if (4 < uVar17) {
        iVar9 = 7;
        pbVar15 = (byte *)ppiVar13[0x1b];
        pbVar18 = (byte *)".ctors";
        do {
          if (iVar9 == 0) break;
          iVar9 = iVar9 + -1;
          bVar20 = *pbVar15 < *pbVar18;
          bVar23 = *pbVar15 == *pbVar18;
          pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
          pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
        } while (bVar23);
        bVar21 = false;
        bVar20 = (!bVar20 && !bVar23) == bVar20;
        if (bVar20) {
LAB_000aeab0:
          bVar23 = false;
          iVar9 = 0xc;
          pbVar15 = *(byte **)(iVar6 + 0x20);
          pbVar18 = (byte *)".init_array";
          do {
            if (iVar9 == 0) break;
            iVar9 = iVar9 + -1;
            bVar23 = *pbVar15 < *pbVar18;
            bVar20 = *pbVar15 == *pbVar18;
            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          } while (bVar20);
          bVar20 = (!bVar23 && !bVar20) == bVar23;
          if (!bVar20) goto LAB_000aeb18;
        }
        else {
          iVar9 = 7;
          pbVar15 = (byte *)".ctors.";
          pbVar18 = (byte *)ppiVar13[0x1b];
          do {
            if (iVar9 == 0) break;
            iVar9 = iVar9 + -1;
            bVar21 = *pbVar15 < *pbVar18;
            bVar20 = *pbVar15 == *pbVar18;
            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          } while (bVar20);
          bVar20 = (!bVar21 && !bVar20) == bVar21;
          if (bVar20) goto LAB_000aeab0;
LAB_000aeb18:
          bVar23 = false;
          iVar9 = 7;
          pbVar15 = (byte *)ppiVar13[0x1b];
          pbVar18 = (byte *)".dtors";
          do {
            if (iVar9 == 0) break;
            iVar9 = iVar9 + -1;
            bVar23 = *pbVar15 < *pbVar18;
            bVar20 = *pbVar15 == *pbVar18;
            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          } while (bVar20);
          bVar21 = false;
          bVar20 = (!bVar23 && !bVar20) == bVar23;
          if (!bVar20) {
            iVar9 = 7;
            pbVar15 = (byte *)".dtors.";
            pbVar18 = (byte *)ppiVar13[0x1b];
            do {
              if (iVar9 == 0) break;
              iVar9 = iVar9 + -1;
              bVar21 = *pbVar15 < *pbVar18;
              bVar20 = *pbVar15 == *pbVar18;
              pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
              pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
            } while (bVar20);
            bVar20 = (!bVar21 && !bVar20) == bVar21;
            if (!bVar20) goto LAB_000ae820;
          }
          bVar23 = false;
          iVar9 = 0xc;
          pbVar15 = *(byte **)(iVar6 + 0x20);
          pbVar18 = (byte *)".fini_array";
          do {
            if (iVar9 == 0) break;
            iVar9 = iVar9 + -1;
            bVar23 = *pbVar15 < *pbVar18;
            bVar20 = *pbVar15 == *pbVar18;
            pbVar15 = pbVar15 + (uint)bVar25 * -2 + 1;
            pbVar18 = pbVar18 + (uint)bVar25 * -2 + 1;
          } while (bVar20);
          if ((!bVar23 && !bVar20) != bVar23) goto LAB_000ae820;
        }
        ppiVar13[10] = ppiVar13[0x19];
        ppiVar13[0xb] = ppiVar13[0x1a];
        ppiVar13[9] = &DAT_0038f4c4;
        ppiVar13[0xfffffffd] = (int *)0x1;
        ppiVar13[0xfffffffc] = (int *)0x0;
        ppiVar13[0xfffffffb] = (int *)(ppiVar13 + 9);
        ppiVar13[0xfffffffa] = (int *)(ppiVar13 + 10);
        ppiVar13[0xfffffff9] = &DAT_0038f4c4;
        ppiVar13[0xfffffff8] = (int *)(ppiVar13 + 4);
        ppiVar13[0xfffffff7] = (int *)0xaeaff;
        FUN_000ae400();
        ppiVar12 = ppiVar13 + 0x17;
        ppiVar13 = ppiVar13 + 0xffffffff;
        uVar17 = (uint)*(byte *)((*ppiVar12)[1] + 0xac);
        goto LAB_000ae822;
      }
    }
  }
LAB_000ae820:
  uVar17 = 0;
LAB_000ae822:
  uVar1 = *(uint *)(iVar6 + 0x54);
  *(uint *)((int)ppiVar13 + -4) = uVar17;
  *(undefined4 *)((int)ppiVar13 + -8) = *(undefined4 *)((int)ppiVar13 + 0x78);
  *(undefined4 *)((int)ppiVar13 + -0xc) = *(undefined4 *)((int)ppiVar13 + 0x70);
  *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x6c);
  *(undefined4 *)((int)ppiVar13 + -0x14) = *(undefined4 *)((int)ppiVar13 + 0x68);
  *(undefined4 *)((int)ppiVar13 + -0x18) = *(undefined4 *)((int)ppiVar13 + 100);
  *(undefined4 *)((int)ppiVar13 + -0x1c) = *(undefined4 *)((int)ppiVar13 + 0x60);
  *(int *)((int)ppiVar13 + -0x20) = iVar6;
  *(undefined4 *)((int)ppiVar13 + -0x24) = 0xae844;
  uVar26 = FUN_00125670();
  **(undefined8 **)((int)ppiVar13 + 0x80) = uVar26;
  if (((uVar1 & 2) != 0) && (((uVar1 ^ *(uint *)(iVar6 + 0x54)) & 5) != 0)) {
    *(undefined4 *)((int)ppiVar13 + -8) = 0;
    *(int *)((int)ppiVar13 + -0xc) = iVar6;
    *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x60);
    *(undefined4 *)((int)ppiVar13 + -0x14) = 0xae872;
    uVar5 = FUN_00097200();
    *(undefined4 *)(iVar6 + 0x5c) = uVar5;
  }
  *(undefined1 *)(*(int *)((int)ppiVar13 + 0x60) + 0x1c4) = 1;
  return iVar6;
}

